这里是嵌入式系统的新手。我必须使两个线程与事件同步。我的代码只显示 "Show in edit box 2sec"
并且不会在 secondthread
中显示我在那里的内容。我应该在编辑框中显示 2 秒,一个线程显示一条消息,两秒后我应该显示 3 秒另一条消息。这应该永远重复。
void FirstThread(void)
{
int i;
//write data to edit box
CString szEdit;
szEdit.Format(_T("Show in edit box 2sec"));
m_editbox->SetWindowText(szEdit);
while(1){
WaitForSingleObject (hEvent, INFINITE);
for(i=0;i<1;i++){
Sleep(2000);
}
SetEvent (hEvent);
}
}
void SecondThread (void)
{
int i;
//write data to edit box
CString szEdit;
szEdit.Format(_T("Show in edit box 3 sec"));
m_editbox->SetWindowText(szEdit);
while(1){
WaitForSingleObject (hEvent, INFINITE);
for(i=0;i<1;i++){
Sleep(3000);
}
SetEvent (hEvent);
}
}
最佳答案
您应该使用两个不同的事件,一个在第一个线程中表示休眠结束,另一个在第二个线程中表示。 (最初,应设置(发出信号)其中一个事件,另一个 - 未设置。)
关于c++ - 线程与事件同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303250/