关于网友提出的“ vc线程小问题”问题疑问,本网通过在网上对“ vc线程小问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: vc线程小问题
描述: 想做一个暂停按钮!创建线程的时候是这样做的:
UpdateData();
m_uLogcon = m_ucon; //m_ucon是这个对话框的变量 m_uLogcon是一个全局变量
if (m_bsetser && m_uLogcon >= 0) //m_bsetser和m_uLogcon是两个标志
{
hThread=CreateThread(NULL, //线程是这样创建的
0,
(LPTHREAD_START_ROUTINE)ThreadReadLog,
(VOID*)&m_com, //传递一个值
0,
&ThreadID);
}
else
{
if (!m_bsetser && m_uLogcon < 0)
MessageBox("串口未打开!");
else if (m_uLogcon < 0)
MessageBox("记录数不能为零!");
}
暂停按钮的响应函数:
void CReadLogDlg::OnButton2()
{
// TODO: Add your control notification handler code here
if (m_bstop == false)
{
SuspendThread(ThreadReadLog);
m_bstop = true;
SetDlgItemText(IDC_BUTTON2,_T("继续"));
}
else
{
m_bstop = false;
ResumeThread(ThreadReadLog);
SetDlgItemText(IDC_BUTTON2,_T("暂停"));
}
}
程序运行正常 就是不能暂停!!!不知道是不是我的那里错了!
解决方案1: 我汗 这种代码都能编译...
DWORD ResumeThread(
HANDLE hThread // handle to thread
);
传递的是HANDLE 不是HANDLE *
解决方案2: 暂停/恢复线程的参数是句柄 也就是创建线程时候的hThread 需要保存这个句柄
以上介绍了“ vc线程小问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3330613.html