部分代码如下:
在主对话框的OnInitDialog函数中创建线程:
pThread = AfxBeginThread(ThreadFunc, &Info); //创建线程 2013-3-6
线程函数:
UINT ThreadFunc(LPVOID lpParam)
{
threadInfo* pInfo = (threadInfo*)lpParam;
CMAINDlg dlg;
dlg.SetTimer(1,3,NULL); //设置主函数的定时器1 接收分析数据 2013-3-6
MSG msg;
while (1)
{
GetMessage(&msg, NULL, 0, 0);
DispatchMessage(&msg);
}
return 0;
}
定时器函数:
void CMAINDlg::OnTimer(UINT nIDEvent)
{
Receive_Data(); //分析接收到的数据
}
函数的声明和变量定义等都不在这里写出来了。
请高手帮我指点下线程函数中如何调用定时器?万分感谢~
5 个解决方案
#1
CMAINDlg dlg;
dlg.SetTimer(1,3,NULL); //设置主函数的定时器1 接收分析数据 2013-3-6
这样的代码咋行呢?对话框还没有创建呢,只是构造了一下。窗体对象还没有,无消息循环啊
dlg.SetTimer(1,3,NULL); //设置主函数的定时器1 接收分析数据 2013-3-6
这样的代码咋行呢?对话框还没有创建呢,只是构造了一下。窗体对象还没有,无消息循环啊
#2
我把dlg.SetTimer(1,3,NULL);改成dlg.Receive_Data();也不行,直接调用接收函数也不行。
#3
那要看你这个函数干了些什么。如果用到了对话框的控件对象,同样是不行的。
#4
没有用到对话框控件对象,我想知道线程函数调用其他函数的代码应该怎样写,麻烦说的详细点。我是新手。
#5
在主对话框的OnInitDialog函数中创建线程:
pThread = AfxBeginThread(ThreadFunc, this); //创建线程 2013-3-6
线程函数:
UINT ThreadFunc(LPVOID lpParam)
{
CMAINDLG* p = (CMAINDLG*)lpParam;
p->SetTimer(1,3,NULL); //设置主函数的定时器1 接收分析数据 2013-3-6
while(1){ Sleep(1000); }
return 0;
}
定时器函数:
void CMAINDlg::OnTimer(UINT nIDEvent)
{
Receive_Data(); //分析接收到的数据
}
pThread = AfxBeginThread(ThreadFunc, this); //创建线程 2013-3-6
线程函数:
UINT ThreadFunc(LPVOID lpParam)
{
CMAINDLG* p = (CMAINDLG*)lpParam;
p->SetTimer(1,3,NULL); //设置主函数的定时器1 接收分析数据 2013-3-6
while(1){ Sleep(1000); }
return 0;
}
定时器函数:
void CMAINDlg::OnTimer(UINT nIDEvent)
{
Receive_Data(); //分析接收到的数据
}
#1
CMAINDlg dlg;
dlg.SetTimer(1,3,NULL); //设置主函数的定时器1 接收分析数据 2013-3-6
这样的代码咋行呢?对话框还没有创建呢,只是构造了一下。窗体对象还没有,无消息循环啊
dlg.SetTimer(1,3,NULL); //设置主函数的定时器1 接收分析数据 2013-3-6
这样的代码咋行呢?对话框还没有创建呢,只是构造了一下。窗体对象还没有,无消息循环啊
#2
我把dlg.SetTimer(1,3,NULL);改成dlg.Receive_Data();也不行,直接调用接收函数也不行。
#3
那要看你这个函数干了些什么。如果用到了对话框的控件对象,同样是不行的。
#4
没有用到对话框控件对象,我想知道线程函数调用其他函数的代码应该怎样写,麻烦说的详细点。我是新手。
#5
在主对话框的OnInitDialog函数中创建线程:
pThread = AfxBeginThread(ThreadFunc, this); //创建线程 2013-3-6
线程函数:
UINT ThreadFunc(LPVOID lpParam)
{
CMAINDLG* p = (CMAINDLG*)lpParam;
p->SetTimer(1,3,NULL); //设置主函数的定时器1 接收分析数据 2013-3-6
while(1){ Sleep(1000); }
return 0;
}
定时器函数:
void CMAINDlg::OnTimer(UINT nIDEvent)
{
Receive_Data(); //分析接收到的数据
}
pThread = AfxBeginThread(ThreadFunc, this); //创建线程 2013-3-6
线程函数:
UINT ThreadFunc(LPVOID lpParam)
{
CMAINDLG* p = (CMAINDLG*)lpParam;
p->SetTimer(1,3,NULL); //设置主函数的定时器1 接收分析数据 2013-3-6
while(1){ Sleep(1000); }
return 0;
}
定时器函数:
void CMAINDlg::OnTimer(UINT nIDEvent)
{
Receive_Data(); //分析接收到的数据
}