我正在使用庫提供的方法以...Async
結尾,並返回Task
。我將在命令行應用程序中使用它們。所以我需要同步調用它們很多。等待異步任務,但沒有在AggregateException中包裝異常
C#當然不允許在Main
方法中調用這些方法,因爲您不能在Main
方法上使用async
修飾符。假設這是任務:
var task = datastore.Save(data);
我發現了幾個解決方案,如:
Tasks.WaitAll(task);
task.Wait();
但是所有這些總結拋出的異常的AggregateException
,我不希望這樣。我只想說task.Result
,我期望拋出原始異常。
當我使用返回的方法Task<TResult>
,task.Result
拋出AggregateException
即使沒有設置任何延續任務。這是爲什麼發作?
我也曾經嘗試過,
task.RunSynchronously();
提示錯誤:
RunSynchronously may not be called on a task not bound to a delegate, such as the task returned from an asynchronous method.
,所以我想這是不是標記爲async
方法。
對於在沒有異步上下文的控制檯應用程序中使用爲異步應用程序設計的庫的模式的任何想法?