在一个C#程序中,我用委托实现异步调用,调用的方法要耗一点时间,我想在该方法没有完成前,结束这个方法,有什么办法呢?

解决方案 »

  1.   

    如果可以的话,建议试试后台线程(backgroundworker),其提供的方法非常适等待时间较长的操作
      

  2.   

    用线程吧。
    backgroundworker最方便,就是不知道能不能满足你需求不。
    用信号量控制也行,不过不太好
      

  3.   

    难道EndInvoke不行?我没有调查
      

  4.   

    EndInvoke好像不是终止委托用的,MSDN的结束时“检索由传递的System.IAyncResult表示的异步操作的返回值”,他的定义是“Object EndInvoke(IAyncResult)”。
     还是把两个线程改为全局变量,或者用两个BackgroundWorker比较好。