a方法中调用b方法,b方法是异步执行的,而且我无法更改b方法的代码
a方法在结束前需要获得b方法的结果,若b方法还没有执行完,就得等...
问题是,等的这一段时间里得干点啥吧...thread.sleep的话,b方法也就停下来了....现在知道的方法,一个是用remoting(我还....也绕太远了),远程对象在执行过程中,当前线程可以sleep,另一个是
            while (!b.Complete)
            {
System.Windows.Forms.Application.DoEvents();
            }
后者又cpu占用100%,虽然能执行完,但是很慢...很慢...
请大家支个招

解决方案 »

  1.   

    楼主用this.thread.sleep(300)就好啦
      

  2.   

    额...首先this下面没有thread对象...
    其次,我在问题里已经说过了,thread.sleep的话,b就不继续执行了
      

  3.   

    讲错了,不好意思~_~1.b线程不要使用b.Join()方法把b加到当前线程;
    2.当前线程休息。使用System.Threading.Thread.Sleep(300);
      

  4.   

    首先建立与b具有相同参数的委托,在a调用b的时候使用,此委托的BeginInvoke方法,会返回IAsyncResult接口,在a中执行IAsyncResult.AsyncWaitHandle.WaitOne()会使a等待直到b执行完毕。
      

  5.   

    NavigateHandler navigatehandler = new NavigateHandler(this.WebBrowser.Navigate);
    navigatehandler.BeginInvoke(uri, null, null).AsyncWaitHandle.WaitOne();
    这样?
    似乎..不行哦....
      

  6.   

    使用一部委托,例子,
    http://blog.csdn.net/zhzuo/archive/2004/06/15/22038.aspx
      

  7.   

    zhzuo(秋枫)说的与freekicker()的说法是否是一个东西呢?
    但是似乎对于WebBrowser.Navigate不起作用呢?