我很抱歉有一个多余的问题.但是,我找到了很多解决我问题的方法,但没有一个解释得很清楚.我希望在这里说清楚.
我的C#应用程序的主线程使用ThreadPool生成1..n后台工作者.我希望原始线程锁定,直到所有工人都完成.我特别研究了ManualResetEvent,但我不清楚它的用途.
在伪:
foreach( var o in collection )
{
queue new worker(o);
}
while( workers not completed ) { continue; }
Run Code Online (Sandbox Code Playgroud)
如果有必要,我会知道即将排队的工人数量.
执行多个磁盘操作时,多线程是否有帮助,阻碍或没有区别?
例如,将许多文件从一个文件夹复制到另一个文件夹时.
澄清:我理解,当执行其他操作时,并发性显然会产生影响.如果任务是打开图像文件,转换为另一种格式,然后保存,则可以与图像操作同时执行磁盘操作.我的问题是,当执行的唯一操作是磁盘操作时,是否同时排队和响应磁盘操作更好.