3
我已經返回完成之前下面的方法(方法上剪下來的簡潔):異步調用不等待
private void ProcessAllItems(List<Item> items)
{
items.ForEach(async item =>
{
var response = await Processor.IOBoundTaskAsync(item);
// Some further processing on the response object.
});
}
的Processor.IOBoundTaskAsync方法返回一個任務<SomeResponseObject>,所以不是虛空。
那麼,發生了什麼?
我希望lambda foreach一次處理一個項目,所以不是並行。對於第一次迭代,代碼進入IOBoundTaskAsync並獲取第一個「await」(它將調用4個等待的Web服務方法的第一個),然後調用方法「ProcessAllItems」退出。
我只使用測試數據,所以我的列表中只有1個項目。
我錯過了什麼?