c# Thread 多线程,一:如何判断子线程全部执行完后再执行主线程,二:是否可以加入标识,标识每一个线程

一:代码如下,如何改善?此时 Console.WriteLine("OK2");不输出,
二:标识线程后:需要对每个线程进行管理,怎么处理
static void Main(string[] args)
{
ArrayList threadList = new ArrayList();
for (int i = 0; i < 100; i++)
{
Program SW = new Program();
Thread parameterThread = new Thread(new ParameterizedThreadStart(SW.ThreadWork));
parameterThread.Name = "Thread :"+i;
ThreadParameter paramter = new ThreadParameter(i.ToString(),i.ToString());
parameterThread.Start(paramter);
threadList.Add(parameterThread);
}

for (int i = 0; i < threadList.Count; i++)
{
Thread t = (Thread)threadList[i];
t.Join();
}

Console.WriteLine("OK2");
Console.ReadLine();
}
public void ThreadWork(object parameter)
{
ThreadParameter parameters = parameter as ThreadParameter;
Console.WriteLine(parameters.PlatformCode+ parameters.InterfaceUrl);
Console.ReadLine();
}

第1个回答  2013-06-06
这需要线程同步和锁的知识,我忘得差不多了,你学学吧
第2个回答  2013-06-06
可以用ManualEvent或者AutoEvent做信号标识,在MSDN搜索吧,一时半会讲不清楚

多线程问题,,如何让所有子线程结束后再执行主线程,,要C#
首先子线程必须由主线程启动,所以严格意义上的“子线程结束后再执行主线程”是不可能实现,你的意思应该是:主线程创建完子线程后,等待子线程退出,在继续执行。你的代码基本没有多大问题,只是 Join 方法位置放置不对。thread1.Start(); \/\/ 先启动所有子线程 thread2.Start();thread3.Start();...

...怎么知道 多个线程 执行完毕了?所有的线程执行完毕后 我要做处理...
i++){Thread t = (Thread)threadList.get(i);t.join();}这样,每一个join都会等待该线程结束。当下面那个循环执行完的时候,那么所有线程就都结束了。还有一个方法就是利用回调。每一个执行线程在run方法的最后都去回调主线程的一个计数器方法。

怎么判断ThreadPool线程池里的任务都执行完毕
c# ThreadPool 判断子线程全部执行完毕的四种方法 1、先来看看这个 多线程编程 多线程用于数据采集时,速度明显很快,下面是基本方法,把那个auto写成采集数据方法即可。 using System; using System.Collections.Generic; using System.Text; u...

C# 如何控制子线程运行结束后再运行主线程
wait.Set();\/\/让等待的地方继续执行 当然这两个方法要写在不同的线程里面,如果写在一个线程里面 wait.Set();是没机会执行的

如何判断线程池里面所有的线程执行完成
这个时候我就需要某个标志位可以告诉我是否线程池中所有的子线程都已经执行完毕,我使用这种方式来判断。当调用ExecutorService.shutdown方法的时候,线程池不再接收任何新任务,但此时线程池并不会立刻退出,直到添加到线程池中的任务都已经处理完成,才会退出。在调用shutdown方法后我们可以在一个死循环里面...

C#多线程问题,子线程结束后回到主线程。
private void SendAndReceive(){ Console.WriteLine("Started sending and recieving..."); Thread.Sleep(2000); Console.WriteLine("Finished sending and recieving...");}private void MakeRecord(){ Console.WriteLine("Recording...");}如果你Debug执行这个程序,可以在输出窗口看到...

C#等待执行完成后再接着执行后续的,请问要如何设计?
页面加载完成事件不能的单纯的判断页面加载完成事件,因为一个页面若是带有多个框架,那么页面完成事件是多个的,有的变态的页,页面加载事件不断的在发生,所以,呢 页面判断是否完成如下:1判断某个关键的标签代码是否已经出现 2巧用错误发生try{ } cathch{},直接操作,若是页面尚未加载完成就会发生错...

AfxBeginThread 启动了多个线程,如果判断这些线程全部结束
你可以构建一个二维数组,存储每个线程的ID和状态这两个参数。然后在每个子线程结束的时候给主线程发送一个消息,将这个子线程的ID和结束状态发送给主线程;主线程相应的消息处理函数负责接受消息和更新那个存储状态的二维数组,每次收到消息后再判断一下是否所有子线程都结束了,就能实现你要的功能了。还有...

如何使“主线程”等待“子线程”执行结束后再继续执行
如果不设置标记判断 而是直接让主线程 Thread.sleep(xxx)睡眠是不合理的。原因是:由于主线程和子线程是并发运行的 睡眠的时间不好控制 如果时间太短 可能子线程没有运行完主线程就又开始运行了。如果时间太长 影响程序的执行效率 所以这个时间是不好控制的。上面有的直接 Thread.sleep(100);完全是...

C# 如何让线程等待到执行完毕才执行下一个循环
for(int i=0;i<10;i++){ Thread Run = new Thread(new ThreadStart(this.Start));Run.Start();Run.join();}

相似回答