[英]Thread vs Backgroundworker vs Timer - Updating UI in C#
我正在尝试创建一个时钟,使用Windows窗体在C#中进出。 我想将当前时间持续显示在屏幕上。 我还希望能够在他或她的电话上ping老板无线,然后用它来确定他们是否在建筑物中。 我尝试使用线程,但是后来他们无法更新UI。 我也尝试过使用计时器,但这太慢了。 我也尝试了后台工作者,但是我认为您不能使用后台工作者来更新UI。 我希望能够每秒更新一次时间,并每隔一分钟左右检查一下老板是否在那里。 请帮助我找到一种方法,同时又不减慢一切。
实际上,您可以从后台调用中做很多事情,更新UI最简单。
将以下代码放在需要UI更新的后台调用中。 UI仅需要从其自己的线程中调用。
this.Invoke((MethodInvoker)delegate {
LabelStatus.Text = "Yeah its working";
Label2.Text = "Updated UI";
// do your stuff on UI thread
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.