当前位置:  开发笔记 > 编程语言 > 正文

在所有后台线程池线程完成时得到通知

如何解决《在所有后台线程池线程完成时得到通知》经验,为你挑选了1个好方法。

我有一个场景,当我用ThreadPool启动3..10个线程.每个线程都完成它的工作并返回ThreadPool.所有后台线程完成后,主线程中可以通知哪些选项?

目前我正在使用一种自行开发的方法,为每个创建的线程递增一个变量,并在后台线程即将完成时递减它.这很好用,但如果有更好的选择,我很好奇.



1> Marc Gravell..:

减少一个变量(在线程之间)有一点风险,除非完成Interlocked.Decrement,但如果你有最后一个线程(即当它变为零)引发一个事件时该方法应该没问题.请注意,它必须位于"finally"块中,以避免在异常情况下丢失它(此外,您不想终止该进程).

在"Parallel Extensions"(或使用.NET 4.0)中,您可能还会查看Parallel.ForEach此处的选项...这可能是将所有内容作为块完成的另一种方法.无需手动观看.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有