我需要帮助如何解冻我的对话框。我正在使用MFC,并且我有一个无限循环,我想在按下按钮时执行。但是,当无限循环开始时,对话框会冻结。现在我看着this thread,有人遇到类似的问题。MFC对话框冻结
不幸的是我想多线程,但我发现,因为我使用的是使用OLE自动化的API和我得到一个未处理的内存异常,不能为我工作。我认为这是因为程序使用串行端口,并且我在某处读取只能在一个线程中使用串口的句柄。
我的程序很简单,看看是否有人在我的调制解调器拨打,等待他们给我的文件,然后挂断。这是我的循环。
while(1)
{
//get rid of input buffer
ts->_this->m_pHAScript->haReleaseRemoteInput();
ts-> _this->textBox->SetWindowTextA("thread Commence");
//wait for connected
if(success = ts->_this->m_pHAScript->haWaitForString("CONNECT",timeout))
{
//getFile
if(success = ts->_this->m_pHAScript->haWaitForXfer(5000))
{
//hangup
ts->_this->haTypeText("+++ath\r");
}
}
}
有没有解冻对话框的方法?
你仍然可以使用与OLE自动化的多线程。但是你必须在每个线程开始时调用OleInitialize()! – Stefan