小弟在做一个串口控制测试软件。开启了一个定时器调用serialport.write不断地发数据给串口,并读取回数。与此同时界面上还有其他的按钮也可以通过点击调用serialport.write来发数据,同时进行有时会冲突,然后serialport.write函数报了异常。请问这种情况应该如何解决。定时器和主界面线程不是同一个线程吗?如果我用trycatch把serialport.write函数调用放进去异常return还是用lock呢?有什么标准的处理方案吗?谢谢
解决方案 »
- DataGridViewHeaderCell中的Combox位置乱了!
- 我开发的一个FTP工具出现莫名其妙的问题
- [FormatException: 输入字符串的格式不正确。],本地调试通过,上传到电信服务器上报错
- 高分问:设计时获得当前项目执行文件路径
- DataGrid中的Button模板列定义,每次刷新都会执行函数,是怎么回事?
- 输入字符串的格式不正确。该怎么解决啊 ?
- WPF中怎么改变textBox1.SelectedText样式?
- 有关DATASET数据检查重复的一个问题
- 请问如何把bin下的dll文件加密,也就是不能被反编译或者阻碍反编译,谢谢
- 报错“在连接选项 server 中发现无效分隔符\,” 急求!
- 用户发送一个消息,用ajax和Json传递数据的代码怎么写啊?
- c# 动态数组如何在窗体间传值
定时器和主界面确实是在同一个线程中。我觉得在主界面线程中事件触发和定时器触发,Windows操作系统会调度的,因为是在同一个线程中。
这个Write可不是同步的,是异步执行的。
前面还没Write完,后面又Write,肯定会错。
你不会想让系统来帮你调度异步执行的函数吧!!!