2016年08月08日
川俣晶の縁側ソフトウェア技術雑記 total 2517 count

Windows 10のアニバーサリーアップデートで発生している非同期の非互換性

Written By: 川俣 晶連絡先

 100%完全に挙動を解明できたわけではありませんが、とりあえず自分のプログラムが満足の行くレベルで動いたのでメモだけ。

問題 §

 Windows 10のOSやSDKなどの環境一式をアニバーサリーアップデートに更新したところ、それまで動いていたプログラムがハングする。

状況 §

  • lockステートメント内部ではawaitを使用できないので、awaitを使用しないでWaitメソッドで待っていた
  • アニバーサリーアップデート以前のWindows 10では動いていた (Windows Phoneでは動いていない疑惑もある)
  • アニバーサリーアップデートのWindows 10ではawait file.Properties.GetImagePropertiesAsync()の行でハングする (Waitメソッドで待っていたメソッド内)

解決 §

 Waitメソッドは使用せずにawaitを使用する。そのために、その部分のコードをlockステートメントの外に出した。Task.Run()の使用で解決する可能性もある。