2 回答
TA貢獻1876條經驗 獲得超5個贊
我沒有足夠的聲譽來評論(還),所以我以答案的形式提供反饋:
在這種情況下,您應該使用事件(偵聽器,處理程序),而不是等待/異步。如果沒有更多關于你想要完成什么的信息,就很難詳細說明這一點。
TA貢獻2012條經驗 獲得超12個贊
所以,我發現以下工作...
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
});
}
}
當我試圖這樣做時,這不起作用:
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 任務被等待,而包裝整個功能的外部任務則未等待...我要么太累了,要么對任務不夠熟悉,無法很好地解釋為什么一個有效而另一個不起作用。
- 2 回答
- 0 關注
- 124 瀏覽
添加回答
舉報
