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 关注
- 75 浏览
添加回答
举报