请问 VB.NET的serialport可以使用查询方式接受数据吗?

由于需要将以前VB6的项目转到.net,之前的mscomm控件在VS2008里一直有问题,所以想用下serailport控件,查了下资料,发现只有公共事件datareci... 由于需要将以前VB6的项目转到.net,之前的mscomm控件在VS2008里一直有问题,所以想用下serailport控件,查了下资料,发现只有公共事件datarecieved用来接收数据,是否没有类似mscomm中inbuffercount的查询接收方式? 展开
 我来答
money0_04c351c2
2014-02-09 · TA获得超过4142个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1604万
展开全部
你自己造一个全局变量就是了。
当收到数据时,就保存到数组里,同时计数。
这样原来的代码稍加修改,去检查这个计数器就行了。
追问
谢谢啊~再问下,当执行其他过程的时候,收到数据时会触发这个datarecieved事件吗?因为通讯协议需要上位机先发地址然后等待下位机回应,再往下执行,是在一个过程里的,所以之前一直用的是查询的方式。
追答
事件是会触发的,但在单线程应用中必须等你释放控制权后才会响应。
所以,你可以尝试在等待代码中合适的位置加入 System.Windows.Forms.Application.DoEvents()
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式