繁体   English   中英

什么是C#中Timer控件的替代方案。 净

[英]What is alternative to Timer control in C#. NET

我正在使用Timer控件,我调用很多函数(即Timer1_Tick事件中的20-30 Sub)可能是由于在500毫秒的间隔内执行这些多个操作可能应用程序在2-3分钟后没有响应。

所以有任何替代方案可以使用定时器控件......

请建议我......

如果我使用多线程,则无法更新其他控件的值/属性。 它给出了一个错误

您可以将BackgroundWorkerMSDN )扩展到您的工作

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM