在Dispose方法中取消任务我有一个类生成各种可以无限期运行的任务。在处理此对象时,我想阻止这些任务运行。这是正确的方法:publicclassMyClass:IDisposable{//StuffpublicvoidDispose(){Dispose(true);GC.SuppressFinalize(这个);}protectedvirtualvoidDispose(booldisposing){if(disposing){queueCancellationTokenSource。取消();feedCancellationTokenSource.Cancel();你在正确的轨道上。但是,我建议等待任务终止,然后再从Dispose方法返回,以避免在处理对象后任务继续运行的竞争条件。还处理CancellationTokenSource。以上就是C#学习教程:取消Dispose方法中任务共享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望你多多关注——publicclassMyClass:IDisposable{私有只读任务feedTask;publicMyClass(){feedTask=Task.Factory.StartNew(()=>{while(!feedCancellationTokenSource.IsCancellationRequested){//做有限的工作}});}publicvoidDispose(){Dispose(true);GC.SuppressFinalize(这个);}protectedvirtualvoidDispose(booldisposing){if(disposing){feedCancellationTokenSource.Cancel();feedTask.Wait();feedCancellationTokenSource.Dispose();feedTask.Dispose();}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
