2007年6月26日

关于C#中控制线程的一点笔记

.NET为多线程的操作提供了很多类和方法,但是翻遍了MSDN,却没有一个令当前线程挂起直到指定线程集全部终止的方法。于是经过在Google Group上和网友讨论,找到了一个比较实用的方法,并将其写成一个函数。

函数目的:控制当前线程等待直到指定线程集合全部终止。

void WaitTilOthersEnd(Thread [] arr)
{
  bool bOtherAlive = true;
  while(bOtherAlive )
  {
    bOtherAlive = false;
    for (index = 0; index < arr.Length; index++)
    {
      bChildThAlive = arr[index].IsAlive || bChildThAlive;
    }
    Thread.Sleep(0);
  }
}


这样一来,只要调用了该函数。那么当前函数在指定线程集的所有线程终止之前是不会继续下面的动作的。虽然是个很简单的方法,不过我在实践中经常用到它,感觉还算有用,所以在这里做个笔记。也希望今后还能从性能的角度对它做进一步的修改。

没有评论: