用按钮控制线程的启动与暂停

yfxclijun 2004-04-14 10:17:33
效果:
1、初始按钮上显示start,点击后显示stop,线程开始执行(比如开始计算)
2、再点击按钮,按钮上显示start,线程暂停;点击按钮后,线程再开始执行

是不是要用消息来实现,在主程序 和线程中应该如何实现
请教。。。
...全文
169 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
c3primer 2004-05-12
  • 打赏
  • 举报
回复
用一个变量标示线程
先判断是否有线程在运行,有就中止(在线程内部)
yfxclijun 2004-04-16
  • 打赏
  • 举报
回复
GZ
消息如何实现
就和播放器上的用一个按钮实现开始/暂停一样
yfxclijun 2004-04-15
  • 打赏
  • 举报
回复
to: leonhome(腐烂生存) 非常感谢,不过我想用的是:PostThreadMessage和PeekMessage
来实现
yfxclijun 2004-04-14
  • 打赏
  • 举报
回复
用vc
消息如何实现
就和播放器上的用一个按钮实现开始和暂停一样
GZ
xcex 2004-04-14
  • 打赏
  • 举报
回复
resume
和 suspend 就好了
leonhome 2004-04-14
  • 打赏
  • 举报
回复
bool Flag=FALSE;
HANDLE hThread;
DWORD hThreadId;

DWORD WINAPI ThreadProc(LPVOID pParam){
........
return 0;
}
int APIENTRY WinMain(...........{
...........
hThread=CreateThread(NULL,0,ThreadProc,CREATE_SUSPENDED,&dThreadId);
hDlg=CreateDialog(........);
............
}
LRESULT CALLBACK MainDlgProc(HWND hDlg........){ //主窗口过程
switch(message){
case WM_INITDIALOG:
......
break;
case WM_COMMAND:
if(LOWORD(wParam)==IDC_BUTTON && HIWORD(wParam)==BN_CLICKED){
if (Flag==TRUE){
SuspendThread(hThread);
SendMessage(GetDlgItem(hDlg,IDC_BUTTON),WM_SETTEXT,(WPARAM)4,(LPARAM)"Stop");
}
else {
ResumeThread(hThread);
SendMessage(GetDlgItem(hDlg,IDC_BUTTON),WM_SETTEXT,(WPARAM)5,(LPARAM)"Start");
}
}
Flag=!Flag;
break;
}
}
..............
}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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