同时开时几个异步的方法,如何确定在这几个异步方法都完成之后再执行下面的程序?希望那位高手给一下具体的代码好吗》

解决方案 »

  1.   

    主等待一个线程结束,只需要两句话,例如:    var handler1=new ManualResetEvent(false);
        .......
        handler1.WaiOne();并排等待几个,就用几个handler。
      

  2.   

    sorry,不是“子线程”,这里用词不当。这里两个线程并不一定有父子关系。
      

  3.   

    比如说我循环的方法,启动多个     ir = DeMatchable_sql.BeginInvoke(5, null, null);方法,我如何知道这些方法多执行完毕后,才调用其它的方法呢
      

  4.   

    如果异步方法少于64个,可以这样:List<WaitHandle> waitHandles = new List<WaitHandle>();
    for(...)
    {
        IAsyncResult  ir = DeMatchable_sql.BeginInvoke(5, null, null);
        waitHandles.Add( iR.AsyncWaitHandle );
    }
    // 堵塞直到所有异步方法返回。
    WaitHandle.WaitAll( waitHandles.ToArray() );