C# 串口数据一直读取 怎么实现C# 程序一直处于 “开启状态”,使有数据来的时候就显示,没数据的时候就“待机” 同时有数据来时就把前一数据覆盖

C# 串口数据一直读取
怎么实现C# 程序一直处于 “开启状态”,使有数据来的时候就显示,没数据的时候就“待机” 同时有数据来时就把前一数据覆盖

你只要open了别close,它就一直是开启的状态
问题是要么你要有个线程死循环不停读取,这是同步的方式
要么你给datarecieved函数注册好事件,有了数据它就会自己触发执行,这是异步的方式
不管同步还是异步,读取的时候都不能保证后续没有数据到达,你需要自己判断数据是否完整

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7659574
  • 这篇博客也不错, 你可以看下C#调用C带回调函数方法的实现
  • 除此之外, 这篇博客: 主流语言实现冒泡排序算法中的 3.c#之冒泡排序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • namespace 数组排序
    {
        class Program
        {
            static void Main(string[] args)
            {
                int temp = 0;
                int[] arr = {23, 44, 66, 76, 98, 11, 3, 9, 7};
                #region该段与排序无关
                Console.WriteLine("排序前的数组:");
                foreach (int item in arr)
                {
                    Console.Write(item + "");
                }
                Console.WriteLine();
                #endregion
                for (int i = 0; i < arr.Length - 1; i++)
                {
                    #region将大的数字移到数组的arr.Length-1-i
                    for (int j = 0; j < arr.Length - 1 - i; j++)
                    {
                        if (arr[j] > arr[j + 1])
                        {
                            temp = arr[j + 1];
                            arr[j + 1] = arr[j];
                            arr[j] = temp;
                        }
                    }
                #endregion
                }
                Console.WriteLine("排序后的数组:");
                foreach (int item in arr)
                {
                    Console.Write(item+"");
                }
                Console.WriteLine();
                Console.ReadKey();
            }
        }
    }
    
  • 您还可以看一下 guiplan创始人周老师老师的【c#解放双手】模拟鼠标键盘纯自动化操作课程中的 软件最大化并置顶显示小节, 巩固相关知识点