Tag: 串口

C#GUI刷新和异步串口通信

我正在尝试创建一个通过串口与硬件通信的应用程序,并将结果报告给gui。 目前通过GUI移动是由KeyEvents引起的,它触发了GUI的下一个“页面”的绘制。 然而,在一步(按下键后)我需要绘制新页面并通过串口发送一些命令。 命令发送通过以下方式完成: port.Write(data, 0, data.Length); 然后我等待DataReceivedHandler触发等待答案 – 它只是确定存在等待的数据并且正在以另一种方法处理数据。 起初我只是将“发送和接收”命令放在“绘制部件”之后绘制页面的function中,但它使其卡住 – 数据被转移,但页面未被绘制 – 它被冻结。 然后我做了一个异步方法: private async void SendData() { await Task.Run(() => serialClass.SendAndReceive(command)); // process reply etc. } 使用的是这样的: public void LoadPage() { image = Image.FromFile(path); //do some stuff on image using Graphics, adding texts etc. picturebox1.Image = image; SendData(); } 它工作正常,但我需要“重新加载”页面(再次调用LoadPage)。 如果我在async方法中这样做: […]