[英]What is alternative to Timer control in C#. NET
我正在使用Timer控件,我调用很多函数(即Timer1_Tick事件中的20-30 Sub)可能是由于在500毫秒的间隔内执行这些多个操作可能应用程序在2-3分钟后没有响应。
所以有任何替代方案可以使用定时器控件......
请建议我......
如果我使用多线程,则无法更新其他控件的值/属性。 它给出了一个错误
您可以将BackgroundWorker
( MSDN )扩展到您的工作
public static class ControlExtensions
{
public static void Invoke(this Control control, Action action)
{
if (control.InvokeRequired) control.Invoke(new MethodInvoker(action), null);
else action.Invoke();
}
}
然后在UI(UI线程)上更改任何内容,您可以这样做
btnGo.Invoke(() => { btnGo.Text = "Done"; });
prgBar.Invoke(() => { prgBar.PerformStep(); });
希望这对你有用。
您可以使用多线程,但是如果要修改UI线程拥有的控件,则需要使用Control.Invoke
(sync)或Control.BeginInvoke
(async)来实现它,以便与UI线程同步并使用你的整个控制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.