public bool Remove()
{
var itemsToRemove = activeQueue.Where(x => x.Value.CanRemove()).ToArray();
foreach(var item in itemsToRemove)
activeQueue.Remove(item.Key);
return passiveQueue.IsEmpty && activeQueue.Count == 0;
}
我希望能够将
Remove
方法改为可等待的 - public async bool Remove()
。因此,唯一会阻塞的是现在返回 Task<bool>
的 CanRemove
方法。但我不确定如何使用 await
。
更新:
public Task<bool> CanRemove()
{
return Task.Run(() => {
...
return false;
});
}
CanRemove
吗?这个方法是否涉及任何 IO 操作? - Yacoub MassadRemove
成为异步操作呢?是为了不阻塞用户界面线程吗? - Yacoub Massad