求助,多线程问题
小弟现在初学vc编程,现在想做一个用串口传数据来玩的vc游戏,
串口传过来的值就是一个(x,y)的坐标,用来控制并进行游戏,
我现在的思路就是用vc做一个flash的播放器,里面放一个flash的游戏来玩,我设置为按一个按钮后,开始从串口读取数据并模拟鼠标来玩游戏,
但是现在的问题就是我要是一直读串口数据的话,我的flash游戏就停止了,这是什么原因?要做多线程吗?
附上我的按钮的事件代码:(因为串口通信还没做好,现在用随机数来代替)
void CflashgameDlg::OnBnClickedOk()
{
int mousex,mousey;
for(int count=1;;)
{ mousex=rand()%1000+1;//随机生成x
mousey=rand()%1000+1;//随机生成y
SetCursorPos(mousex, mousey);
m_flashplayer.Play();
}
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnOK();
} 多线程 串口通信 鼠标 MFC flash
[解决办法]
要用多线程,否则主线程会阻塞
[解决办法]
界面线程用来监视串口设备就会阻塞原有的窗体消息循环。
可以用AfxBeginThread启动一个线程。那个线程专门监视串口设备,有数据后用消息PostMessage或者SendMessage通知界面线程来完成通信
[解决办法]
用CreateThread,你看一下各个参数的接口说明
http://blog.sina.com.cn/s/blog_8a7012cf01017srr.html
[解决办法]
这年代了还串口啊,直接网络多好
[解决办法]
当然可以模拟啊
[解决办法]
你不能那样写程序,怎么在for里面一直调用play,你这个单击事件里面只需做一个play播放flash,然后开定时器,settimer,然后在定时器里面随机模拟鼠标就行了,你这个串口收发比较简单,没必要开线程
[解决办法]
AfxBeginThread((pfunc, this, THREAD_PRIORITY_NORMAL);
pfunc 是线程处理函数 函数里面
while(收到串口数据)
{
。。。。
SendMessage发给处理函数
}
不好意思 下午有课就去上课了,刚下课吃饭回来,不知道你现在有没有时间能不能加我qq问你下多线程到底怎么处理啊