社区
进程/线程/DLL
帖子详情
请问我在一个按钮的事件中,想调用两个线程,怎么控制前面的一个线程执行完了才执行下一个线程?
qdcnc168
2003-10-16 08:06:39
AfxBeginThread(threadproc1,hWnd);
AfxBeginThread(threadproc2,hWnd);
我想在threadproc1执行完了之后才执行threadproc2,请问怎么控制?
谢谢帮助!!!!
...全文
103
6
打赏
收藏
请问我在一个按钮的事件中,想调用两个线程,怎么控制前面的一个线程执行完了才执行下一个线程?
AfxBeginThread(threadproc1,hWnd); AfxBeginThread(threadproc2,hWnd); 我想在threadproc1执行完了之后才执行threadproc2,请问怎么控制? 谢谢帮助!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qdcnc168
2003-10-17
打赏
举报
回复
好像是不行!
我的第一个线程需要显示提示对话框,选了才能进行下去,如果按你的方法好像没有反映了,就是没有提示,是否在等待第一个线程的结束,可是这个线程又需要提示才能进行下去,这样形成死锁了,是不是这样?如果是,怎么解决?
另外一种方式是用全局变量,也就是第二个线程运行了,但是等待第一个线程将定义的一个全局变量改成另外一个之,在等待的过程中应该用循环?
如果用循环,那也要占cpu的,如果在循环的过程中用sleep怎么样?
qdcnc168
2003-10-16
打赏
举报
回复
具体如下:
pFirstThread = AfxBeginThread(........);
WaitForSingleObject(pFirstThread->m_hThread,INFINITE);//等待第一个线程结束
pSecondThread = AfxBeginThread(threadproc2,hWnd);
DWORD WaitForSingleObject(
HANDLE hHandle, // handle to object to wait for
DWORD dwMilliseconds // time-out interval in milliseconds
);
第2个参数是毫秒值,写成INFINITE就是一直等到它结束
qdcnc168
2003-10-16
打赏
举报
回复
HWND hWnd=GetSafeHwnd();
AfxBeginThread(threadproc1,hWnd);
我原来是这样调用线程的,那么是不是这样调用:
CYourDlg::OnButton1()
{
pFirstThread = AfxBeginThread(........);
WaitForSingleObject(pFirstThread->m_hThread,hWnd);//等待第一个线程函数的返回
pSecondThread = AfxBeginThread(threadproc2,hWnd);
WaitForSingleObject(pSecondThread->m_hThread,hWnd);
谢谢帮助!
}
vcforever
2003-10-16
打赏
举报
回复
首先定义两个指针,用于存放AfxBeginThread() 返回的指针
CWinThread *pFirstThread;
CWinThread *pSecondThread;
你可以在你的按钮中这样写
CYourDlg::OnButton1()
{
pFirstThread = AfxBeginThread(........);
WaitForSingleObject(pFirstThread->m_hThread,....);//等待第一个线程函数的返回
pSecondThread = AfxBeginThread(threadproc2,....);
WaitForSingleObject(pSecondThread->m_hThread,....);
}
这样就可以让两个线程依次运行了!
希望对你有所帮助!
akiko
2003-10-16
打赏
举报
回复
WaitForSingleObject(hThread1,INFINITE);
smch
2003-10-16
打赏
举报
回复
全局变量。判断。
Java多
线程
快速上手经典
参与和领导了上百个大
中
型项目的设计和开发,在互联网应用系统架构、系统设计、 应用级框架和
中
间件开发等方面具有很多经验和领悟。 更为难得的是,入行20年,仍然奋战在技术...
c#单击
一个
按钮
执行
另
一个
按钮
的
事件
Method1 最简单的方式:通过属性
中
事件
栏的Click
事件
,选择自己写过的
按钮
事件
Method2 通过代码实现:以下两句代码都可实现 private void openFileToolStripMenuItem1_Click(object sender, EventArgs e) { //toolStripButton1.PerformClick(); this.o...
一个
按钮
触发
两个
事件
点击
一个
按钮
分别触发
两个
事件
点击 点击第一次的时候 $("button").click(function(){ $("p").css({"background-color":"red","font-size":"200%"}); }); 在点击第二次的时候 $("button").click(function(){ $("p").css({"displa
C#
一个
线程
访问另外
一个
线程
的控件(
线程
之间的控件的互相访问)
本文以
一个
线程
实时动态的改变主
线程
上面的label的text值为例子 步骤 新建项目和添加
事件
核心代码书写 新建项目和添加
事件
首先在窗口上面添加
一个
label
两个
按钮
(分别用来开始子
线程
和终止子
线程
) 然后为
两个
按钮
添加click
事件
核心代码的书写 在代码区的窗口类下面添加
一个
BackgroundWorker控件(注意添加命名空间using System.ComponentModel;) BackgroundWorker可以当它就是
一个
子
线程
在button2的click
事件
配置子
线程
(包
java多个
线程
执行
不同的函数_java多
线程
中
执行
多个程序的实例分析
免费资源网 - https://freexyz.cn/我们知道多
线程
因为同时处理子
线程
的能力,对于程序运行来说,能够达到很高的效率。不过很多人对于多
线程
的
执行
方法还没有尝试过,本篇我们将为大家介绍创建
线程
的方法,在这个基础上,对程序
执行
多条命令的方法进行展示。下面我们就来看看具体的操作步骤吧。1、创建
线程
对象我们需要用到Thread类,该类是java.lang包下的
一个
类,所以
调用
时不需要导入包。...
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章