社区
硬件/系统
帖子详情
使用mscomm控件,如何实现多线程?
jszhuweiwei
2009-09-01 09:48:44
使用三个mscomm控件,,其中有两个会同时接受数据,需要使用多线程吗?在mscomm中如何使用?
...全文
371
11
打赏
收藏
使用mscomm控件,如何实现多线程?
使用三个mscomm控件,,其中有两个会同时接受数据,需要使用多线程吗?在mscomm中如何使用?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangshi3465
2010-10-24
打赏
举报
回复
http://topic.csdn.net/u/20101024/21/6f224047-8284-4737-adc0-0fdb00bf5586.html?6436
正好,我刚发了个这样的程序,大家可以看看怎么回事。。
知道的别忘回复哦
adidas_1983_
2009-11-11
打赏
举报
回复
想进来看看如何实现多线程,结果没得!
melody1304
2009-10-23
打赏
举报
回复
这样可能嘛,串口数据是不允许共享的,也就是说一个MSCOMM控件只能对映一个串口,一但占有就独享资源知道自己释放,其他MSCOMM想打开那个串口不可能
kaven_yang
2009-10-15
打赏
举报
回复
看过,顶一下
wqf2009
2009-09-27
打赏
举报
回复
ding
yangbo_cuit
2009-09-08
打赏
举报
回复
不需要
贝隆
2009-09-04
打赏
举报
回复
不需要,硬件上是独立的。根本不相影响。
jszhuweiwei
2009-09-02
打赏
举报
回复
[Quote=引用 3 楼 feilinhe 的回复:]
如果是三个控件使用三个串口的话,哪就,互不影响,如果都从同一个串口接收那就有问题了,这样的话其实用一个就可以了
[/Quote]
各干各的,如果两个同时串口同时有接受时间会不会丢数据啊?下面这段话正确吗?
程序中有三个MSComm控件,都是用oncomm事件来接收数据的,这时是多线程方式接收数据吗?
响应时间最快是多少ms,多谢指教!
算不算多线程不好说,
每个MSComm控件都是从系统消息队列里接收到消息然后做出响应的。
我自己感觉Vc应该是哪个MSComm先接到Oncomm事件就先执行哪个的事件响应,
除非在处理过程中主动执行DoEvent去响应其他事件,
否则其他MSComm即使有事件到来也没机会接到,
因为我自己的认识经历告诉我,
事件中断应该是不能被同级别中断抢占的。
但是如果在一个MSComm事件处理没完成的时候调用DoEvents
即暂时主动放弃控制权以响应后继事件(比如按钮操作,窗口刷新等,当然也包括其他的MSComm事件)
理论上应该可以实现多个MSComm控件“并发”(其实好象还是轮流)接收的。。。
还有,如果你每个MSComm的OnComm事件响应过程都很短,
而串口接收的速度很慢,最高也就115K左右,
而且产生OnComm的间隔很长,
因为你可以设置较大的InBuffer让它装满后再产生事件。。。
那么完全没必要为它是否多线程担心,
因为以现在的计算机的运算速度,
响应一次MSComm也就是微秒级的时间,
应该完全感觉不到对其他控件有什么影响。
还有,不管你当前的OnComm有没有处理完,
都不影响其他MSComm的接收、发送和产生事件的过程,
只是你暂时没办法响应和干预而已。
新到的数据不会因为你没有处理而丢失
而是暂时存放在 InBuffer里。
后台怎么接收是硬件电路的问题,
接收后怎么保存是MSComm控件实现细节的问题,
都不归你Vc程序管
你只需要把你要发的数据送给MSComm,
从InBuffer里取出你要的数,
并尽可能及时地响应OnComm事件就可以了。
feilinhe
2009-09-02
打赏
举报
回复
如果是三个控件使用三个串口的话,哪就各干各的,互不影响,如果都从同一个串口接收那就有问题了,这样的话其实用一个就可以了
maple_zhj
2009-09-02
打赏
举报
回复
串口控件,不是接收后 回调的吗?
需要多线程?
jszhuweiwei
2009-09-02
打赏
举报
回复
再顶一下
vba 中引入ms
com
m
控件
MS
Com
m
控件
虽然功能强大,但在某些高级应用中可能显得不足,如高速数据传输、
多线程
通信等。对于这些需求,开发者可能需要转向更专业的串行通信库或者.NET框架下的SerialPort类。然而,对于初学者和简单应用,MS
Com
m...
MS
com
m
控件
注册工具及
使用
方法
- MS
Com
m
控件
有很多属性可以设置,例如`PortName`用于指定串口号,`Settings`设置波特率、数据位、停止位等通信参数,`RThreshold`和`InputLen`控制接收缓冲区的触发条件。 - `
Com
mPort`属性用于设置端口号,如1到...
VS2008C++MFC串口小程序采用MS
Com
m
控件
本篇将深入探讨如何
使用
Visual Studio 2008(VS2008)中的C++和MFC框架来开发一个基于MS
Com
m
控件
的串口通信小程序。MS
Com
m
控件
是Microsoft提供的一种方便的工具,用于在Windows应用程序中
实现
串行通信功能。以下我们...
MS
COM
M
控件
加脚本注册
5. **
多线程
考虑**:在
多线程
环境中
使用
串口时,需要确保线程安全,避免并发访问冲突。 综上所述,“MS
COM
M
控件
加脚本注册”是一个关于在Windows系统中安装、注册和
使用
串口通信
控件
的关键步骤,对于需要开发串口...
基于MS
COM
M
控件
的串口通信Demo
7. **
多线程
考虑**:在实际应用中,串口通信可能会涉及
多线程
问题,确保在读写串口时的同步和安全。 总结来说,基于MS
COM
M
控件
的串口通信Demo是一个基础的教学实例,它展示了如何
使用
MS
COM
M
控件
进行简单的串口通信...
硬件/系统
2,643
社区成员
17,229
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章