我正在使用并行任务阅读一些文件。在此操作期间,如果我取消任务,则文件句柄不会关闭。任务已成功取消。看起来我需要做一些更多的事情来取消取消期间的文件句柄,但无法弄清楚我需要做什么。我假设任务取消将处置所有对象,但事实并非如此。 非常感谢任何帮助。
答案 0 :(得分:1)
取消任务不会处置任何事情。我真的不知道如何取消或启动Task
,因为您没有显示任何代码,但推荐的方法是调用任务Cancel()
的{{1}}方法。当您的任务正在执行它应该执行的操作时,应检查标记属性CancellationTokenSource
。 This post很好地解释了这个程序。
清理完全取决于你。垃圾收集器将终止正常对象,但您需要调用IsCancellationRequested
,Dispose
或相当于您正在使用的任何昂贵对象。
您有多种选择,手动调用Close
,使用Dispose
块或实现某种工作单元模式。