2 回答

TA貢獻1876條經(jīng)驗 獲得超5個贊
我沒有足夠的聲譽來評論(還),所以我以答案的形式提供反饋:
在這種情況下,您應(yīng)該使用事件(偵聽器,處理程序),而不是等待/異步。如果沒有更多關(guān)于你想要完成什么的信息,就很難詳細說明這一點。

TA貢獻2012條經(jīng)驗 獲得超12個贊
所以,我發(fā)現(xiàn)以下工作...
static void Main(string[] args)
{
Task watchTask = WatchCollection();
// Do other stuff here, while watching...
}
private static async Task WatchCollection()
{
using (var cursor = collection.Watch())
{
await cursor.ForEachAsync(change =>
{
// process change event
});
}
}
當(dāng)我試圖這樣做時,這不起作用:
static void Main(string[] args)
{
using (var cursor = collection.Watch())
{
Task watchTask cursor.ForEachAsync(change =>
{
// process change event
});
}
// Do other stuff here, while watching
}
因此,實際的 ForEachAsync 任務(wù)被等待,而包裝整個功能的外部任務(wù)則未等待...我要么太累了,要么對任務(wù)不夠熟悉,無法很好地解釋為什么一個有效而另一個不起作用。
- 2 回答
- 0 關(guān)注
- 107 瀏覽
添加回答
舉報