非同期タスクを同期させる方法< t>方法
Asyncプログラミングは、非同期操作を処理する便利な方法を提供しますが、非同期メソッドを同期して実行する必要があるシナリオがある場合があります。 1つの一般的な誤解は、task.runsynchronally()を使用しようとすることです。これにより、無効なエクセプトが発生する可能性があります。
この問題を回避するには、Asynchelpersクラスの次のメソッドを使用することを検討してください。
使用法:public static void RunSync(Func<Task> task); public static T RunSync<T>(Func<Task<T>> task);
var customerList = AsyncHelpers.RunSync(() => GetCustomers());実装:
runsyncメソッドは、排他的な施行性コンテキストインスタンスを作成し、現在の同期コントテクストとして設定します。代表者を投稿してAsyncタスクを実行し、完了を待ちます。実行中に例外が発生した場合、実行方法内での集約エクセプトとして再洗練されています。 state。
トライキャッチまたは待機ブロックでエラー処理の必要性を排除します。
以上がAsyncタスクメソッドを同期するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。