如何判断一个函数是否执行完成 如何判断一个函数是否执行完成 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void f(){.........MessageBox.Show("偶终于执行完了,呵呵");} bool flag = true;函数进来时候true最后是false return了就表示完成了,钻牛角尖干什么 对。。最后一个加个弹出http://www.thewebhappy.com 常用的try{...}catch(){...}这个最好判断了! 在同一个函数中,ObjectArx.Net在执行完成一条AutoCAD命令后,并不等待命令完成,就一直往下执行,结果是下面的语句又影响到上面命令的执行。 用 WaitHandle 那些玩意试试 你不用异步,仅在本进程本线程内执行同步方法,函数return了,就执行完了。没什么好说的。用异步就用事件通知。 private void aaa() { ......... MessageBox.Show("终于执行完了"); return;} 先生,return;语句是多余的吧,到了最末的“}”,也就自动相当于return了。return; 问题是那个函数像批处理一样执行,C#无法控制它。要是C#函数是可以控制,前者是AutoCad组件中的函数,如何同步? 单线程程序中 :funtion(){ ... 运行...}除非你强制中断程序或者函数发生异常 否则必然会执行完成 你可以在函数最后写一段代码指示方法已经执行完成,因为是单线程,所以在函数执行过程中,你不可能通过任何方式运行其他代码多线程中:你可以先声明一个全局的变量 bool isEnd=false;然后另启一个线程去执行这个方法funtion(){ ... 运行... isEnd=true;}因为是多线程 所以你可以随时同过isEnd来判断程序是否执行完当然,当函数执行完后 这个线程自动结束 (主线程不受影响) lz,这么和你说,调用外部函数,也是要等函数有返回值才会往下执行,即便你调用的是异步方法,那也是异步方法新开了一个线程。而作为接口,异步方法在没有设计缺陷的情况下都会提供一个通知机制。C#里的异步方法通知机制是事件,而传统的C/C++ 函数,是需要你提供一个回调函数的指针,当异步方法执行完毕,会通过函数指针调用你的方法,原理和事件是一样。如果你100%确定你调用的方法是异步方法,那么应该把精力放在找出这个cad函数提供的通知机制。如果这确实是异步方法,且没有提供通知机制,那么这个函数执行后必定会有什么效果,比如改变哪个变量或者生成文件等等,那么你要在调用这函数之后加一个while(判断函数执行效果的表达式){}这样一个空循环,直到确定函数执行效果达到,才往下走。 关于后台和客户端连接的知识的问题 问一个C# 带参数的委托问题 [询问C#高手] 关于启动两个同名进程实例碰到的问题,50分请教,关注即有分 .net 界面设计 C# 模拟鼠标 怎么实现延迟触发鼠标事件 求:字符串相似度算法 请问关于C#调用VC写的DLL问题 选课系统,学生选择一门课程以后,如果显示出选择该课程的学生的详细名单? 求教大神 udp 接收的问题,请帮忙看看! 求助多窗体如何固定前后? 请各位大侠推荐一个.NET平台中能代替GDI+的图像处理库
{
.........MessageBox.Show("偶终于执行完了,呵呵");
}
函数进来时候true
最后是false
在同一个函数中,
ObjectArx.Net在执行完成一条AutoCAD命令后,并不等待命令完成,就一直往下执行,结果是下面的语句又影响到上面命令的执行。
{
......... MessageBox.Show("终于执行完了");
return;
}
先生,return;语句是多余的吧,到了最末的“}”,也就自动相当于return了。
return;
问题是那个函数像批处理一样执行,C#无法控制它。要是C#函数是可以控制,前者是AutoCad组件中的函数,如何同步?
{
... 运行...
}除非你强制中断程序或者函数发生异常 否则必然会执行完成 你可以在函数最后写一段代码指示方法已经执行完成,因为是单线程,所以在函数执行过程中,你不可能通过任何方式运行其他代码
多线程中:
你可以先声明一个全局的变量 bool isEnd=false;
然后另启一个线程去执行这个方法funtion()
{
... 运行...
isEnd=true;
}因为是多线程 所以你可以随时同过isEnd来判断程序是否执行完当然,当函数执行完后 这个线程自动结束 (主线程不受影响)
C#里的异步方法通知机制是事件,而传统的C/C++ 函数,是需要你提供一个回调函数的指针,当异步方法执行完毕,会通过函数指针调用你的方法,原理和事件是一样。如果你100%确定你调用的方法是异步方法,那么应该把精力放在找出这个cad函数提供的通知机制。如果这确实是异步方法,且没有提供通知机制,那么这个函数执行后必定会有什么效果,比如改变哪个变量或者生成文件等等,那么你要在调用这函数之后加一个
while(判断函数执行效果的表达式){}
这样一个空循环,直到确定函数执行效果达到,才往下走。