如何从外部立即终止一个成员函数的继续执行(其代码尚未执行完)?

qiren2001 2005-10-07 01:21:24
比如,先new一个对象,其成员函数执行较费时间(如30分钟,若干定时器和延时操作)。现在,进入该成员函数执行其代码。
【问题】
如何在它的代码尚未执行完毕之前,立即终止它的继续执行?
试验了delete,但要等到代码执行完毕后才删除该对象。怎么能够立即终止它的执行并删除对象?最好方法是从外部操作,不去修改该成员函数的内部代码(比如添加一些消息处理之类的代码)。不知是否可行?若不行,如何实现比较简单?(该对象有若干个这样的函数,最好不要修改每个函数的代码)
...全文
184 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiren2001 2005-10-13
  • 打赏
  • 举报
回复
谢谢各位兄弟光临。
我的小程序几乎已定型,所以不想做太大的修改。大家都说用线程,估计能行,没试验。不过,我记住了这个方法,以后遇到再试验。
myredsun 2005-10-08
  • 打赏
  • 举报
回复
呵呵,最傻的办法,就是每执行一个代码之前,判断一下是否要继续执行,当然也是多线程的了。
binbin 2005-10-08
  • 打赏
  • 举报
回复
TerminateThread不能保证线程的资源被释放吧.
如果是长时间的操作,应该是在循环体里操作吧,在线程的循环体内检测一个标志,在程序外通过共享内存设置这个标志.
或者用消息(PostThreadMessage)通知
lurker123 2005-10-07
  • 打赏
  • 举报
回复
我也同意用多线程来处理,如果不用多线程的话,恐怕得使用调试线程暂停线程的运行,然后用汇编指令控制函数返回。
特招 2005-10-07
  • 打赏
  • 举报
回复
用线程执行那个成员函数,然后中止线程执行
GeoPhoenix 2005-10-07
  • 打赏
  • 举报
回复
有点像OS了,在代码的里面适当位置加上Application->ProcessMessages()试一下,这样可以中断代码的运行,但是效率比较低
shadowstar 2005-10-07
  • 打赏
  • 举报
回复
不知道用线程行不行,把代码放到一个线程里执行,需要的时候中止线程,楼主试试看。
myy 2005-10-07
  • 打赏
  • 举报
回复
可以在一个单独的线程中执行此函数,通过强制终止线程(TerminateThread)的办法终止,
但这样做会有缺陷,查查TerminateThread的帮助吧...
shadowstar 2005-10-07
  • 打赏
  • 举报
回复
几乎是不可能的

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧