c#:如何让一个方法在返回前等待2秒,而不锁定UI线程?

本文关键字:2秒 等待 线程 UI 锁定 返回 方法 一个 | 更新日期: 2023-09-27 18:06:38

我需要等待2秒让串行端口响应,然后返回一个值。在不锁定UI线程的情况下,实现这一目标的最佳方法是什么?

我有一个名为Test的类,并在程序的主形式中创建了它的一个实例。我有几个事件处理程序将数据传递回主表单并更新UI。我的Test类有一个叫做runTest的方法,它有两个循环。第一个循环调用conTest。完成后,第二个程序运行并调用hiPotTest。在conTest和HiPotTest中,我通过串行端口发送命令以启动测试。我想做的是等待2秒(例如)并获得结果并从conTest和hiPotTest返回结果。我首先想到的是线。睡眠,但后来我觉得那可能会在那段时间锁定UI。这是正确的吗?如果是,避免这种情况的最好方法是什么?

我要到星期一上班的时候才能测试程序的这一部分。所以现在我只是猜测会发生什么

c#:如何让一个方法在返回前等待2秒,而不锁定UI线程?

让进程休眠几秒钟应该会设置警报,提示出了什么问题。虽然它现在可能工作,但这种类型的代码将导致prod问题。如果2秒后没有结果怎么办?当结果到达时,你最好通知你的线程,如果结果到达,你的UI可以立即响应。2秒。

已经说过,如果你真的想这样做,你可以生成一个后台线程/定时器(system.timer .timer),并让你的方法睡眠。但是请不要这样做:)