C#串口接收数据速率降低的问题

C#中开启线程,串口接收速率下降到0甚至断开,线程里什么都不执行,只跑空线程也掉,求思路解决问题。
点击按钮执行以下代码速率就掉,线程里面什么都没执行。
串口接收数据显示在另外的线程里,点击按钮开新线程,接收串口数据的速率就掉到很低,甚至导致卡死


```c#


            if (TestThread != null)
            {
                TestThread.Abort();
            }

            TestThread = new Thread(() =>
            {
                num= 1;
                while (num<11)
                {
                    try
                    {
                        if (num== 11)
                        {
                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        break;
                    }
                }
            });
            TestThread.SetApartmentState(ApartmentState.STA);
            TestThread.Start();



```

这是个啥,不是死循环吗
你写个死循环阻塞代码是要干点啥
要么你干脆改成同步读取数据,没有数据就阻塞住;
要么你采用异步读取数据,没有数据程序什么都不干,有数据就自动执行函数;
你现在写了个异步处理,但是先用一个while把它阻塞住,这除了浪费cpu算力没有任何意义呀
-=-=-
此外,你的if判断应该改为>=,因为一旦你另外的线程执行的太快,导致相等的那一刹那没有执行判断,那之后就再也无法停下来了,真变死循环了

https://bbs.csdn.net/topics/610873851

看的明白自己改,看不明白我也不打算多说啥。我们很清楚知道,要想让赶马车的去开汽车这个过程还真不容易

我们只是想说“我们有N多种不必赶马车的‘得,驾’”,而程序员却总是喜欢搞啥线程(得),跨线程(驾)。

除了Chanel,我们还可以有System.IO.Pipelines ,还可以有Rx.net,还可以有IAsyncEnumerable 等等其他无数手段。愿意开车的就自己学,非要赶马车的我们也不拦着