複数の完了したタスクをTask.WhenAnyに渡すときに、Task.WhenAnyは、完了したタスクの優先度を返します。Task.WhenAnyはいくつかのタスクを他のタスクに優先させますか?
1
A
答えて
1
正確な動作を知りたい場合は、よくreference sourceを確認してください。例えば、WhenAny
はhereです。
ソースを調べるとき、返されるタスクは自分のタスクではなく、内部で作成されたタスク(CompleteOnInvokePromise
インスタンスまたはその継続のいずれか)であり、Result
があなたのタスクの1つになることに注意してください。完了したタスクをWhenAny
に渡す場合、Result
はすぐに最初に完了したタスクに設定されます。
+0
もちろん、まだ完了していないタスクが熱いと仮定して、ここにレースがあります。if 'ct'の項目が既に完成していて、' t'が呼び出しの開始時になかった '{t1、t2、ct1、ct2}'を持っていれば、 't1'と' t2'のいずれかが* * WhenAnyはまだループしていて設定しています。一言で言えば、不完全なタスクと完全なタスクが混在すると、すでに完了しているタスクの1つが返されることは確かに保証されません。 –
関連する問題
- 1. 優先タスクを持つスレッドプールエグゼキュータ
- 2. Eclipseのタスク優先度
- 3. Task.WhenAnyタスクは、次のコードでは
- 4. 他のいくつかのタスク完了後にタスクを実行する
- 5. メインスレッドで優先度の低いタスクをスケジュールします
- 6. エグゼクティブサービスにはいくつかのタスクがありません
- 7. gruntタスクは他のgruntタスクを実行できますか?
- 8. 私はいくつかのタスク持っ
- 9. 各タスクに優先順位の色を追加しますか? Jquery todoリスト
- 10. サービスはいくつかのタスクを開始できますか?
- 11. タスクの優先順位付けされたリスト
- 12. capistranoタスクにいくつかのステップを追加しますか?
- 13. プリエンプションと優先度を持つ2つのタスクを作成する
- 14. セロリはタスクのいくつかのインスタンスを作成します
- 15. セロリのいくつかのタスクが動作し、その他のものが登録されていません
- 16. スケジュールされたタスクのメモリ優先度を変更するにはどうすればよいですか?
- 17. Python:Qt-Guiといくつかのタスク
- 18. 異なるタスクの2つの優先順位制約がSSISの1つのタスクにどのように移動するのですか
- 19. タスク内からセロリのタスクを失敗させる方法は?
- 20. C#タスクのリストとtask.whenAnyのパフォーマンスを使用
- 21. いくつかのファイルはTar Gradleタスクでは含まれていません
- 22. cloudimのタスクの優先度を変更するにはどうすればいいですか?
- 23. ラップされたタスクを処理する並行処理レベルのタスクスケジューラ(タスク優先度あり)
- 24. セロリ - 優先度で実行する必要のあるタスク
- 25. データ駆動型の注文のためのデータベースレイアウト(タスク優先度)
- 26. .NETでスレッドプールのタスクの優先順位付けが可能ですか?
- 27. ThreadPoolExecutorsでのNettyタスクの優先順位付け
- 28. セロリの待ち行列/タスクの優先順位付け
- 29. CSSルールの上書きはいつ優先されますか?
- 30. Gradleタスク他のタスクを呼び出すには
なぜ完了したタスクを 'Task.WhenAny'に送りますか? – Jonesopolis
いいえ。完了したタスクを追加している場合は、コレクション内で最初に完了したタスク(自然な順序で反復する、何も狂っていない)が返されます。私は順序がどこにでも指定されていることを非常に疑っているので、行動*は変わる可能性があります。タスクが完了していない場合は、*実行して完了する最初のタスクを返します。 [関連ソースコード](http://referencesource.microsoft.com#mscorlib/system/threading/Tasks/TaskFactory.cs,db51a91904616672) –