相关疑难解决方法(0)

等待池化线程完成

我很抱歉有一个多余的问题.但是,我找到了很多解决我问题的方法,但没有一个解释得很清楚.我希望在这里说清楚.

我的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)

如果有必要,我会知道即将排队的工人数量.

.net c# multithreading

38
推荐指数
4
解决办法
5万
查看次数

确定所有线程何时完成c#

作为C#的初学者,我对线程非常陌生.我有一个程序将触发Windows应用程序内的多个线程.我的目标是为列表中的每个项目启动一个新线程.此列表中的项目是网络上的工作站名称.创建的每个线程都会在每台机器上进行修复,当线程完成后,它会写入任何发现的错误的日志文件等.但我想要确定的是所有线程何时完成.所以,如果我有100台机器,100个线程,我如何确定何时关闭?

以下是我的方法: -

private void repairClientsToolStripMenuItem_Click(object sender, EventArgs e)
{
    if (machineList.Count() != 0)
    {
        foreach (string ws in machineList)
        {
            new Thread(new ParameterizedThreadStart(fixClient), stack).Start(ws);
        }
    }
    else
    {
         MessageBox.Show("Please import data before attempting this procedure");
    }
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading thread-safety

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×2

multithreading ×2

.net ×1

thread-safety ×1