...Asyncと returnで終わるメソッドを提供するライブラリを使用していますTask。これらをコマンド ライン アプリケーションで使用します。だから私はそれらを同期的にたくさん呼び出す必要があります。
C# ではもちろん、メソッドで修飾子をMain使用できないため、これらのメソッドをメソッドで呼び出すことはできません。これがタスクであると仮定します:asyncMain
var task = datastore.Save(data);
次のようないくつかの解決策が見つかりました。
Tasks.WaitAll(task);
task.Wait();
ただし、これらすべてのラップで例外がスローされますがAggregateException、それは望ましくありません。私は言いたいだけでtask.Result、元の例外がスローされることを期待しています。
を返すメソッドを使用すると、継続タスクが設定されていないにもかかわらずTask<TResult>、task.Resultスローされます。AggregateExceptionなぜこれが起こっているのですか?
私も試しましたが、
task.RunSynchronously();
エラーが発生します:
RunSynchronously は、非同期メソッドから返されたタスクなど、デリゲートにバインドされていないタスクでは呼び出すことができません。
とマークされたメソッドではないと思いasyncます。
非同期コンテキストがないコンソール アプリで非同期アプリ用に設計されたライブラリを使用するパターンに関するアイデアはありますか?