问题描述
- MFC里的线程内Sleep()不执行???
-
void CAaaDlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_a=0;
SetTimer(1,500,NULL);}
void CAaaDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
UpdateData(TRUE);
m_a=m_a+1;
Info.a=m_a;
m_b=Info.b;
pThread=AfxBeginThread(ThreadFunc,&Info);
UpdateData(FALSE);
CDialog::OnTimer(nIDEvent);
}UINT CAaaDlg::ThreadFunc(LPVOID lParam)
{
int d;
ThreadInfo* pInfo=(ThreadInfo*)lParam;
Sleep(2000);
d=pInfo->a;
pInfo->b=d;
return 0;
}然后结构体
struct ThreadInfo
{
int a;
int b;
}Info;
代码是这样的,本意是编辑框a里的数每隔5传一次给编辑框b,但为什么只做了一次后,之后再循环,线程里的sleep()不起作用了????
解决方案
SetTimer中参数是500,应该是5000吧
解决方案二:
我想要a每500ms加1次啊
解决方案三:
我也遇到这个问题了。查了MSDN,发现Sleep()这个函数是会让线程挂起的
时间: 2024-10-26 05:31:22