私が作業しているこのコードがあり、async と await の使用に関するいくつかの質問に遭遇しました。私は以前に「プロジェクト」を閉じるためのメソッドを作成しましたが、それを非同期デリゲートと非同期で使用すると、うまく機能します。deserializeAsync()
また、宣伝どおりに機能する他の状況で使用する方法も作成しました。ただし、アプリに Open Project 機能を実装したいと考えています。他のデリゲートで使用した Async ヘルパー メソッドを使用してメソッドの作成を開始しましたが、ファイル参照ダイアログでユーザーに情報を求める必要がある場合、これが適切な解決策であるかどうかわからないことに気付きました。ファイル参照ダイアログを表示すると、メソッドの実行がフリーズするため、非同期ではなくなったと思います。ここでのベストプラクティスは何ですか? するべきか.Wait()
このような私の非同期メソッド:
CloseProjectAsync().Wait();
Open Project メソッドにすべてを同期的に実行させるだけですか、それとも私が持っている Async メソッドを待って、このメソッドを「可能な限り非同期」にする方がよいでしょうか?
private async Task OpenProjectAsync()
{
//get folderPath
if (m_OpenFileService.ShowDialog(null) != true)
return;
await CloseProjectAsync();
await Task.Run(() => {
string[] lines = File.ReadAllLines(m_OpenFileService.FileName);
});
await DeserializeAsync(something);
}