Task Parallel Library から派生した API とクラスを使用する場合、開発者がガベージ コレクションの影響を考慮する必要があるのはいつですか?
実行中に .NET タスク インスタンスが範囲外になることはありますか? 、スコープ内のタスクを維持することについて心配する必要がないという安心感を与えるように思われます. ただし、問題は、ThreadPoolrooted
によって実行されている ThreadPool で実行されているタスクに限定されているようです。ただし、この MSDN ブログ投稿を正しく理解していれば、その SO の質問からのアドバイスは一般的に適用できTaskCompletionSource
ませんrooted
。
TaskCompletionSource
懸念されるのは、直接使用するときだけですか?
ただし、API を使用する場合、タスクがどこから来たのかわかりません。提供されたものがルート化されていないソースTask
からのものである場合に備えて、継続への参照を保存することについて心配する必要がありますか?TaskCompletionSource
これは、タスクがルート化されているかどうか (非同期 I/O タスクがルート化されているか?) を考慮する必要があるため、すぐに不便で複雑になるようです。トピックに関する情報を見つけるのに苦労していますが、ガベージコレクターとの競合状態を心配する必要があるかどうかを判断するために逆コンパイルされたソースコードを読む必要はないと思うほど人気のあるライブラリです。何かが欠けている、または誤解している。