高手请进,关于单步执行问题!

lvchengwei 2004-05-08 08:37:05
我编写了一个MFC程序。
我想实现这样的一个功能:当函数做到某一步时停下来,等待用户单击某个按钮后,再回到原来的地方继续执行!

我的函数涉及到第归调用,没有办法用代码来保存断点,不能拆分。(反正我是做不到将这个函数砍开几段执行)

有没有相关的API函数可以调用?如果没有,有没有其他方法实现这个功能
...全文
13 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lvchengwei 2004-05-08
怎么我没有想到用年信号量呢!
谢谢!
  • 打赏
  • 举报
回复
vcforever 2004-05-08
你可以把这个函数设计成一个线程函数,当你需要停止该函数的时候调用SuspendThread函数来挂起该线程,在你所描述的按钮函数中调用ResumeThread函数来使挂起的线程继续执行
DWORD ResumeThread(
HANDLE hThread // handle to thread
);
DWORD SuspendThread(
HANDLE hThread // handle to thread
);

另一种方法是定义一个全局的Event对象,在你的函数中需要停止的地方使用WaitForSingleObject(hEvent,INFINITE)来等待该Event对象,这时该函数就停止在WaitForSingleObject函数处,然后在你的按钮函数中调用SetEvent(hEvent)函数将Event对象设置成激发状态,这样WaitForSingleObject函数就会返回,函数从WaitForSingleObject函数处继续往下执行


思路就是这样,希望对你有所帮助!
  • 打赏
  • 举报
回复
UDX协议 2004-05-08
所你的工作定义成,n个步骤。然后定义n个事件。
然后就用waitforsingleobject函授等第n个事件。

等待用户单击某个按钮后n+1,按扭里面,把事件设成有信号的。
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC
加入

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-08 08:37
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……