让我们假设我运行了这样的代码
Task.Factory.StartNew(...).ContinueWith(...);
我没有为两个创建的任务存储参考,所以我能确定在开始或执行过程中它们不会被处理吗?如果是,那么在哪里提到这些任务?
答案 0 :(得分:4)
系统在两个条件下保留对TPL Task
的引用:
完成Task
和任何子任务后,该引用将被丢弃。代码中的引用将按预期运行。
我相信你对垃圾收集和Dispose
有些困惑。这个问题可能会启发你。
Difference between destructor, dispose and finalize method
析构函数隐式调用Finalize方法,它们在技术上是相同的。处理可用于那些对象 实现IDisposable接口......
您应该处置任务吗?
Stephen Toub说:
没有。不要费心处理你的任务。
http://blogs.msdn.com/b/pfxteam/archive/2012/03/25/10287435.aspx