我尝试了一切.
-事件
-Invoke无法完成,因为Timers没有InvokeRequired属性.
- 公共/内部财产
没有任何工作,代码正在执行,timer.Enabled属性被设置为"true",但它没有Tick.If我调用事件或只是在非静态方法中从表单类更改属性 - 它确实打勾和工作.
我从来不知道这会花费我一天的时间,甚至可能更多地获得如何使用体面的计时器.
如果没有办法做到这一点,还有什么我可以使用的与计时器类似的工作(延迟,启用/禁用)?
如果需要多线程支持,则应该使用System.Timers命名空间中的Timer类,而不是WinForms Timer控件.有关更多信息,请查看WinForms Timer控件的MSDN文档:
http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.aspx
您不需要检查InvokeRequiredControl iteself,您可以检查类的属性,例如:
if (this.InvokeRequired)
{
BeginInvoke(new MyDelegate(delegate()
{
timer.Enabled = true;
}));
}
Run Code Online (Sandbox Code Playgroud)