关于多线程的难题现在有5个线程。
我想要
1,2两个线程结束的时候引发一个事件.
3,4,4线程都结束的时候引发一个事件。
1,3,5线程都结束的时候引发一个事件.这个需求应该怎么做?

解决方案 »

  1.   

    - -就引发呗~?有啥问题?事件如果要主线程处理,那么this.Invoke()来调用事件委托。this是当前控件/窗体(WinForm)
      

  2.   

    每个线程去对应一个布尔变量,线程结束置为true
    每个线程结束时都去检查某一组变量是否全为true
      

  3.   

    1、建一个线程池,塞5个线程进去
    2、另外再建立一个线程,用来监视线程池里5个线程的ThreadState值,若是Stop,表示结束了,启动相关事件
      

  4.   

    使用ManualResetEvent
    参考下
    http://topic.csdn.net/u/20080522/11/98fb4582-b16c-4d02-9424-5f5eee3449be.html
      

  5.   

    信号量就是AutoResetEvent与ManualRestEvent,详见msdn
    或者回调委托Invoke或异步委托BeginInvoke来做
    最后还是推荐BackgroundWorker来做
      

  6.   

    每个线程建立一个对应的bool变量标识是否结束,然后在timer里加入判断语句,若符合你说的情况就调用相应的事件咯