C# コンストラクターは非同期メソッドを呼び出すことができますか?
C# のコンストラクターは通常、インスタンス フィールドの初期化やインフラストラクチャのセットアップに使用されます。ただし、開発者はコンストラクターで非同期操作を実行する必要がある状況に遭遇する可能性があります。
問題の詳細な説明
この問題は、タスクの開始後に呼び出し元に制御を返すコンストラクターから非同期メソッドを呼び出すときに発生します。コンストラクターは同期されたコンテキストで実行されるため、await
または Task.Result
を使用すると UI スレッドがブロックされ、アプリケーションが応答しなくなる可能性があります。
推奨される解決策
UI スレッドのブロックを回避し、適切な非同期処理を確保するには、アプリケーションを設計するときにダウンロード プロセスの非同期の性質を考慮することをお勧めします。ページ コンストラクターは、データが取得されていることを示すビューを設定し、ダウンロード操作を開始する必要があります。ダウンロードが完了すると、ページが更新されて、取得したデータが表示されます。
その他のリソース
以上がC# コンストラクターで非同期メソッドを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。