いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

タスク並列ライブラリ入門記-007 (TaskのDisposeについて, Task.Dispose)

ずっと気になっていた事の答えがMSDNのブログに載っていたので
忘れないうちにメモメモ。

TaskクラスはIDisposableを実装しています。
なので、Disposeメソッドが定義されているのですが
通常、これを呼んでいるソースを見たことがありません。
(私自身も呼んでないです。)

とはいっても、定義されている以上呼ばないといけないのかなあって
思っていたりして気になっていました。CodeRush入れているとCodeIssueで
警告でたりするので・・・。

で、答えはMSDNのブログに書いてありました。

上記のブログから一部抜粋です。

Here’s my short answer to this question:
“No. Don’t bother disposing of your tasks.”

気にする必要ないよってことらしいです。
Taskクラスは、内部でWaitHandleを持っているのでIDisposableを実装している
けど、ファイナライズ時に解放されるので、特に呼ばなくていいよって事らしいです。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。