【发布时间】:2014-09-03 12:34:41
【问题描述】:
我正在编写一个多线程应用程序,它是 Windows 服务。我有 20 个文件夹。我创建了 15 个线程的 onstart 方法。我想实现这一目标; 15 个线程依次转到文件夹 1、2、3、...、15。当一个线程完成时,它会创建另一个线程。这个创建的线程必须去 16.th 文件夹。它不能进入工作文件夹。我怎样才能做到这一点?也就是说,我怎么能确定两个线程不会去同一个文件夹呢?
【问题讨论】:
-
您的意思是每 15 个文件夹有 15 个线程,还是每个线程一个文件夹。如果是后者,为什么需要线程来实现同步?
-
我的意思是每个线程一个文件夹。
-
只是传递一个参数来确定数量。或者使用parallelfor
-
并行创建 15 个线程是不可能的。我认为。
-
是的,我的 Task 解决方案可能并没有真正在 15 个线程上运行。默认情况下,Tasks 使用线程数有限的线程池(尽管您可以设置自己的最大线程数)。无论如何,即使您自己创建了线程,您也可以为文件夹名称创建一个静态计数器。
标签: c# multithreading