紧急求助:VC++中,下例是如何体现是多线程的?线程和用普通的函数调用有何不同?
来源:百度知道 编辑:UC知道 时间:2024/06/22 17:03:09
BOOL CSetIDDlg::OnInitDialog()
{
CDialog::OnInitDialog();
UpdateData(false);
ConfigComPort();//设置串口参数.
DWORD dwThreadId = 0;
//创建线程
m_hReadThread = CreateThread(NULL, 0, ReadThread, this, CREATE_SUSPENDED, &dwThreadId);
SetThreadPriority(m_hReadThread, THREAD_PRIORITY_NORMAL);
ResumeThread(m_hReadThread);
//设置焦点
(this->GetDlgItem(IDC_EDT_NEWID))->SetFocus();
return TRUE;
}
////**************************************************************
小女体会不到为什么要用线程,怎样体现出并行的呢?请高手不吝赐教。。。感激涕零。。。。
////**************************************************************
to Sadusaga :
又是你啊!
to Sadusaga :
呵呵,你太厉害了。。。谢谢。
to Sadusaga :
我好崇拜你呦。。。像崇拜偶像一样崇拜你呦,你可真是高手。呵呵。。
{
CDialog::OnInitDialog();
UpdateData(false);
ConfigComPort();//设置串口参数.
DWORD dwThreadId = 0;
//创建线程
m_hReadThread = CreateThread(NULL, 0, ReadThread, this, CREATE_SUSPENDED, &dwThreadId);
SetThreadPriority(m_hReadThread, THREAD_PRIORITY_NORMAL);
ResumeThread(m_hReadThread);
//设置焦点
(this->GetDlgItem(IDC_EDT_NEWID))->SetFocus();
return TRUE;
}
////**************************************************************
小女体会不到为什么要用线程,怎样体现出并行的呢?请高手不吝赐教。。。感激涕零。。。。
////**************************************************************
to Sadusaga :
又是你啊!
to Sadusaga :
呵呵,你太厉害了。。。谢谢。
to Sadusaga :
我好崇拜你呦。。。像崇拜偶像一样崇拜你呦,你可真是高手。呵呵。。
此处你不用多线程,程序就会阻塞,所有消息会阻塞,也就是你界面上无法处理。
假如你调用函数,那么这个函数是阻塞的,而线程不会,你可以试一下,把线程去掉,直接调用线程函数,你会看到区别。
怎么了?
没这么严重吧。。。
线程并行是由CPU处理的,不用你考虑
你只需要知道在需要同时处理两件事时可以用多线程就行了
不用线程,对于某些特定功能有时候程序难处理,或者效率低,或者代码繁琐,严重时会出现死锁
这时候就体现出多线程的优势了