在控制台上开启两个线程,如何设置他们执行的先后顺序
在控制台下开启两个线程,怎么设置他们执行的先后顺序?
在控制台下开启两个线程,怎么设置他们执行的先后顺序?
在控制台下开启线程,不用MFC的afxbeginthread,要怎么做?改包含那个文件?
然后我想开启一个线程A后,等A执行完,再开始执行线程B,该怎么写让B线程等待A线程先执行呢?
求指导~
------解决方案--------------------
1.create事件: CreateEvent,
2.create线程A: _beginthreadex, 线程结束时,设置事件为有信号
3.create线程B:_beginthreadex, 等待事件的信号再执行
3.关闭所有句柄: CloseHandle
------解决方案--------------------
LS,其实不用设置事件
直接 开启线程A- WaitForSingleObject A - 开启B -...
即可
------解决方案--------------------
------解决方案--------------------
int _tmain(int argc, _TCHAR* argv[])
{
hEvent = CreateEvent(NULL, TRUE, FALSE, TEXT("ABSynObj"));
HANDLE hA = (HANDLE)_beginthreadex(NULL, 0, AThread, NULL, 0, NULL);
WaitForSingleObject(hA, .....); //如果不想阻塞主线程,可把WaitForSingleObject放到B线程的开始的地方
_beginthreadex(NULL, 0, BThread, NULL, 0, NULL);
return 0;
}
在控制台下开启两个线程,怎么设置他们执行的先后顺序?
在控制台下开启线程,不用MFC的afxbeginthread,要怎么做?改包含那个文件?
然后我想开启一个线程A后,等A执行完,再开始执行线程B,该怎么写让B线程等待A线程先执行呢?
求指导~
------解决方案--------------------
1.create事件: CreateEvent,
2.create线程A: _beginthreadex, 线程结束时,设置事件为有信号
3.create线程B:_beginthreadex, 等待事件的信号再执行
3.关闭所有句柄: CloseHandle
------解决方案--------------------
LS,其实不用设置事件
直接 开启线程A- WaitForSingleObject A - 开启B -...
即可
------解决方案--------------------
#include "stdafx.h"
#include <windows.h>
#include <process.h>
#include <iostream>
using namespace std;
HANDLE hEvent;
unsigned int WINAPI AThread(PVOID pvParam) {
//To Do Begin
cout << "A Thread" << endl;
//To Do End
SetEvent(hEvent);
return 0;
}
unsigned int WINAPI BThread(PVOID pvParam) {
WaitForSingleObject(hEvent, INFINITE);
//To Do Begin
cout << "B Thread" << endl;
//To Do End
CloseHandle(hEvent);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
hEvent = CreateEvent(NULL, TRUE, FALSE, TEXT("ABSynObj"));
_beginthreadex(NULL, 0, AThread, NULL, 0, NULL);
_beginthreadex(NULL, 0, BThread, NULL, 0, NULL);
return 0;
}
------解决方案--------------------
int _tmain(int argc, _TCHAR* argv[])
{
hEvent = CreateEvent(NULL, TRUE, FALSE, TEXT("ABSynObj"));
HANDLE hA = (HANDLE)_beginthreadex(NULL, 0, AThread, NULL, 0, NULL);
WaitForSingleObject(hA, .....); //如果不想阻塞主线程,可把WaitForSingleObject放到B线程的开始的地方
_beginthreadex(NULL, 0, BThread, NULL, 0, NULL);
return 0;
}