TaskCompletionSource
のインスタンスを提供して駆動するために使用していますTask
。Task
タスクが...'実行中'であることを示すためにステータスを設定できるようにしたいのですが、Running
を介してこれを達成する方法がわかりませんTaskCompletionSource
。
これを行う方法はありますか?
TaskCompletionSource
のインスタンスを提供して駆動するために使用していますTask
。Task
タスクが...'実行中'であることを示すためにステータスを設定できるようにしたいのですが、Running
を介してこれを達成する方法がわかりませんTaskCompletionSource
。
これを行う方法はありますか?
いいえ、方法はありません。
しかし、私の答えが好きかどうかにかかわらず、それは正しいものです。:-)
以下は私の意見であり、あなたが気分を良くするのを助ける試みです。
Task.Statusには、タスクがスケジュールされたタスクである場合にのみ設定および役立ついくつかの状態があります。TaskCompletionSourceからのタスクは、スケジュールされたタスクではありません。したがって、WaitingToRun、Runningなどの概念は、従来のスケジュールされたタスクの意味には適用できません。これらを設定する機能がある場合は、これらの値に適用するセマンティクスを決定する必要があります。これは、他の人がそれらを解釈する方法と競合する可能性があります。
結局のところ、とにかく、あなたのコードがこれらの中間状態に基づいて決定を下すべきではないと思います。そうすることは「コードの臭い」のように聞こえます。