9

TaskCompletionSourceのインスタンスを提供して駆動するために使用していますTaskTaskタスクが...'実行中'であることを示すためにステータスを設定できるようにしたいのですが、Runningを介してこれを達成する方法がわかりませんTaskCompletionSource

これを行う方法はありますか?

4

1 に答える 1

4

いいえ、方法はありません。

しかし、私の答えが好きかどうかにかかわらず、それは正しいものです。:-)

以下は私の意見であり、あなたが気分を良くするのを助ける試みです。

Task.Statusには、タスクがスケジュールされたタスクである場合にのみ設定および役立ついくつかの状態があります。TaskCompletionSourceからのタスクは、スケジュールされたタスクではありません。したがって、WaitingToRun、Runningなどの概念は、従来のスケジュールされたタスクの意味には適用できません。これらを設定する機能がある場合は、これらの値に適用するセマンティクスを決定する必要があります。これは、他の人がそれらを解釈する方法と競合する可能性があります。

結局のところ、とにかく、あなたのコードがこれらの中間状態に基づいて決定を下すべきではないと思います。そうすることは「コードの臭い」のように聞こえます。

于 2013-03-03T18:18:26.623 に答える