アプリケーションの起動時に設定ファイルを読み込んで読み込もうとしていますが、約 90% のawait GetFileAsync("filename.xml");
確率で返されないため、アプリケーションがハングします。
約 4 分の 1 の確率で、コードをステップ実行すると、実際に戻ってファイルが読み取られます。
コードの非常に単純化されたバージョンを次に示します。
アプリ.xaml.cs:
protected override void OnLaunched(LaunchActivatedEventArgs args)
{
FileLoader.Load().Wait();
// File-load dependent stuff
}
FileLoader.cs:
public async static Task Load()
{
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file;
bool fileExists = true;
try
{
// The following line (often) never returns
file = await folder.GetFileAsync("filename.xml");
{
catch
{
fileExists = false;
}
// Do stuff with loaded file
}
Visual Studio で出力ウィンドウを見ると、しばらく待ってから"The thread '<No Name>' (0x30c) has exited with code 0 (0x0)."
ここで何が起こっているのか誰か知っていますか?