子线程调用主程序变量是否会发生冲突??

bigbillybear bigbillybear 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我是用的是VB2008,我在主线程中接收单片机蓝牙发送的数据,七个字节为一帧,最后一个字节是“E”
设置SerialPort1.ReceivedBytesThreshold = 7,进入 SerialPort1_DataReceived事件后getdatastr = (SerialPort1.ReadTo("E"))

子线程每秒运行一次,通过委托调用数据处理函数。数据处理过程判断If getdatastr.Length <> 0 Then进行相应的数据转换和处理,其中还包括为窗体label添加时间。

问题是程序开始运行还可以,但是一段时间后会出现死机现象,点击窗体的按键之类的都没反应,而且明显看到一秒循环的数据处理程序中为label改写时间没有进行,但是乱按一会貌似还能恢复运行。

所以我怀疑是不是子线程在读取getdatastr时,主线程刚好又在执行getdatastr = (SerialPort1.ReadTo("E")),造成了错误系统死机了???

刚刚接触多线程程序,还请各位大侠赐教
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
bigbillybear
VB 16,718 成员 110,520 内容