江湖救急!!关于线程控制权的问题.
我的程序中的辅助线程用于串口收发数据,主线程负责显示/处理数据,当辅助线程收到串口发来的数据时,会用一个消息通知我的界面线程,同时将收到的数据通过参数传递给界面线程的OnReceive()函数.
void CTestDlg::OnReceived(WPARAM wParam,LPARAM lParam)
{
m_str+=wParam;//wParam是串口收到的字符,例如"AB"
}
我想在界面线程的一个OnButten()函数里等待m_str的变化:
void CTest311Dlg::OnButton1()
{ .......//先给串口发数据,而后等待回应,判断是否是"AB"
while(m_str!="AB")
{;}//**
......
}
执行时,界面线程在while(m_str!="AB")处死循环,占用了线程,使界面线程无法处理辅助线程发来的串口消息,当然也就无法使m_str=="AB".请问如何让while(m_str!="AB")函数每次循环让出线程控制权?是不是在**处加上什么函数?