如何判断一个函数是否执行完成

解决方案 »

  1.   

    void f()
    {
    .........MessageBox.Show("偶终于执行完了,呵呵");
    }
      

  2.   

    bool flag = true;
    函数进来时候true
    最后是false
      

  3.   

    return了就表示完成了,钻牛角尖干什么
      

  4.   

    对。。最后一个加个弹出http://www.thewebhappy.com
      

  5.   

    常用的try{...}catch(){...}这个最好判断了!
      

  6.   


    在同一个函数中,
    ObjectArx.Net在执行完成一条AutoCAD命令后,并不等待命令完成,就一直往下执行,结果是下面的语句又影响到上面命令的执行。
      

  7.   

    用 WaitHandle 那些玩意试试
      

  8.   

    你不用异步,仅在本进程本线程内执行同步方法,函数return了,就执行完了。没什么好说的。用异步就用事件通知。
      

  9.   

    private void aaa() 

    ......... MessageBox.Show("终于执行完了"); 
    return;
    }
      

  10.   


    先生,return;语句是多余的吧,到了最末的“}”,也就自动相当于return了。
    return;
      

  11.   


    问题是那个函数像批处理一样执行,C#无法控制它。要是C#函数是可以控制,前者是AutoCad组件中的函数,如何同步?
      

  12.   

    单线程程序中 :funtion()
    {
       ... 运行...
    }除非你强制中断程序或者函数发生异常 否则必然会执行完成 你可以在函数最后写一段代码指示方法已经执行完成,因为是单线程,所以在函数执行过程中,你不可能通过任何方式运行其他代码
    多线程中:
    你可以先声明一个全局的变量 bool isEnd=false;
    然后另启一个线程去执行这个方法funtion()
    {
       ... 运行...
       isEnd=true;
    }因为是多线程 所以你可以随时同过isEnd来判断程序是否执行完当然,当函数执行完后 这个线程自动结束 (主线程不受影响)
      

  13.   

    lz,这么和你说,调用外部函数,也是要等函数有返回值才会往下执行,即便你调用的是异步方法,那也是异步方法新开了一个线程。而作为接口,异步方法在没有设计缺陷的情况下都会提供一个通知机制。
    C#里的异步方法通知机制是事件,而传统的C/C++ 函数,是需要你提供一个回调函数的指针,当异步方法执行完毕,会通过函数指针调用你的方法,原理和事件是一样。如果你100%确定你调用的方法是异步方法,那么应该把精力放在找出这个cad函数提供的通知机制。如果这确实是异步方法,且没有提供通知机制,那么这个函数执行后必定会有什么效果,比如改变哪个变量或者生成文件等等,那么你要在调用这函数之后加一个
    while(判断函数执行效果的表达式){}
    这样一个空循环,直到确定函数执行效果达到,才往下走。