zoukankan      html  css  js  c++  java
  • C#串口通信遇到的坑

    C#串口通信中有一个DataReceived事件可以委托一个接收函数。此接收函数是运行在辅线程(secondary thread)上的。如果要在这个函数中修改主线程中的一些元素,比如UI界面上的变量的值,必须使用委托的方式。DataReceived所注册的接收函数和主线程中的发送函数是异步的。如若想用同步的方式进行发送和接收。阻塞读是一个解决方案。阻塞读是指如果发送的指令没有接收完毕,那么接收方法被堵塞。此时也不能发送下一条指令。串口中有一个readLine方法是阻塞读的。部分代码如下:

     String order1;
     order1 = "命令一";
    sp1.WriteLine(order1);
     sp1.ReadLine();  
    order1 = "命令二";
    sp1.WriteLine(order1);

    如果命令一发送后,sp1的readLine方法没有接收完毕。在这里就是接收一行。那么命令二是不会继续执行的。

  • 相关阅读:
    2017年3月9日上午学习
    3.17上午
    3.16上午
    3.16下午
    3.15
    2017.3.14
    3.14
    217.3.13上午
    2017.4.7-morning
    2017.4.6-afternoon
  • 原文地址:https://www.cnblogs.com/liquan/p/7699653.html
Copyright © 2011-2022 走看看