如何用多线程创建视图?
我正在做串口通讯程序,我对每一个串口(4个)都开一个工作线程,用于监视串口状态,当有事件发生时向主线程发送消息,随后主线程使用ReadFile来读取串口数据,并处理、显示取来的数据。但是因为每个串口吐出的数据比较多,使用主线程来读取数据会发生丢包现象,所以我打算再对每个串口开启一个用户界面线程,用于读取、处理并显示数据,这样可以直观的看出哪个串口吐出什么样的数据。
我不知道这样做是否更好,如果大家认同的话,又如何使用线程来创建视图?
谢谢!!!
问题点数:100、回复次数:3Top
1 楼freelybird(阿愚)回复于 2002-06-06 18:33:32 得分 100
1 在工作界面中没有必要再做界面
2 你所说的丢包现象是由于你没有真正把任务分配给工作线程. 实际
你可以这样做: 在工作线程中循环读串口(包括读数据内容). 当有
合法正确的数据时, 向主窗口发送一个消息.以显示数据内容
3 我认为这样的结构更合理, 主线程处理界面, 工作线程处理任务.
如果你每个工作线程都有一个界面,岂不是有点乱.
4 如果你还是坚持你的意思的话: 创建有界面的线程是从CWinApp继承
即可.它有消息循环.Top
2 楼zou_chao(头疼)回复于 2002-06-06 19:44:27 得分 0
谢谢freelybird(阿愚) !!!
你说得很有道理,使我有茅塞顿开的感觉,我打算采取你的方法。
不过,如何使用线程来创建视图,我还想和你讨论一下。
我的意思是,不论多文档还是单文档都是主线程通过调用CWinApp::OnFileNew
函数来创建视图,我想的是CWinApp创建主框架,由主框架启动线程,由线程创
建视图,也许这样做是很麻烦,也不现实,不过我还是想知道这方面的技巧,也
许什么时候就会有用。Top
3 楼jiangsheng(蒋晟.Net[MVP])回复于 2002-06-06 21:55:03 得分 0
自己SendMessage到主框架不就完了Top




