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()
。したがって、ブロックするのはCanRemove
で、現在はTask<bool>
です。しかし、私はそれを作る方法がわかりませんawait
。このラムダ式をasync/awaitに変換する方法は?
UPD:
public Task<bool> CanRemove()
{
return Task.Run(() => {
...
return false;
});
}
「今はタスクを戻しているCanRemoveだけです」とはどういう意味ですか? CanRemoveを表示できますか?この方法にはIOが関係していますか? –
私は、呼び出しスレッドをブロックする可能性のある場所のみを意味します。同期API呼び出しを使用しているライブラリー呼び出しがいくつか含まれています。 – Pablo
あなたは何を削除しようとしていますか?非同期呼び出しは、主にI/O呼び出し(データベースまたはファイル操作を考える)に使用する必要があります。 –