我很喜欢使用System.Threading.Tasks
。然而,我看到的许多代码示例都类似于以下内容:
Dim lcTask = Task.Factory.StartNew(Sub() DoSomeWork())
Dim lcTaskLong = Task.Factory.StartNew(Sub() DoSomeWork(), TaskCreationOptions.LongRunning)
Task.WaitAll(lcTask, lcTaskLong)
这就是示例的全部内容。
Tasks 实现了 IDisposable
接口,所以我显然应该将其释放,但如果我只想 "Fire and Forget"(启动并忘记),那怎么办?
如果我不释放,会泄漏线程/句柄/内存/业力吗? 我是否使用 tasks 的方式有误?(应该仅使用委托而不是涉及 tasks ?)
我可以在 ContinueWith()
中进行释放吗?(这似乎像在玩俄罗斯轮盘。)