私はタスクを返すメソッドがあり、内部条件が真であればタスクは終了します。 ので、コードは次のようになります。どのようにC#でメソッドを記述すれば、条件が真であるかを返しますか?
public Task<Result> Method(int numberOfAggregats){
return new Task<Result>(() => "return result once
aggregated information > numberOfAggregates");
}
は、すべてのCPUやのThread.sleepを食べるループせずにこれを行うには、いくつかの方法はありますか?
さらに詳しい情報:私はクラスの目的は、wcfクエリを介してサーバーに入る情報を集約することです。これは "Method"メソッドを含むクラスです。 このメソッドは、集約された情報を必要とするバックグラウンド・ワークだけでなく、uiによって呼び出されます。
これまで、メソッドにコールバックアクションを渡していましたが、これはすべての情報が一度呼び出されると呼び出されました。タスクを返す背後にあるアイデアは、依存するモジュールのコードを複雑にするので、コールバックを取り除くことです。
を作るかもしれない、あなたは条件を制御していますか?ときにはそれが唯一の方法です。つまり、それがあなたのコントロールから外れていて、いつ起こるのか分かりません。それ以外の場合は、実際にそのようなケースを避けるようにしてください – bevacqua
はい私は条件を制御している。条件変数は同じクラスにあります。問題は、別のスレッドからbeeingが設定されてから、条件が真になるのにどれくらい時間がかかるか分かりません。それはどこからでも1秒から10分までかかります – LDomagala