Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#10秒后禁用控件的最简单方法是什么?计时器还是秒表?_C#_Timer - Fatal编程技术网

C#10秒后禁用控件的最简单方法是什么?计时器还是秒表?

C#10秒后禁用控件的最简单方法是什么?计时器还是秒表?,c#,timer,C#,Timer,C#10秒后禁用控件的最简单方法是什么?用计时器还是秒表?我对这两个都是新手,所以谢谢你的帮助。使用计时器。它更适合你的需要 编辑:正如其他人所说,使用System.Windows.Forms.Timer我不知道你希望秒表有什么帮助。对我来说,计时器听起来确实是正确的答案。您应该知道有-在这种情况下,可能是您想要的WinForms应用程序或WPF应用程序。Windows forms有一个控件(如下所示) 使用这些方法的原因是因为这些计时器在UI线程上启动,所以您不必像使用其他线程上运行的方法或其

C#10秒后禁用控件的最简单方法是什么?用计时器还是秒表?我对这两个都是新手,所以谢谢你的帮助。

使用计时器。它更适合你的需要


编辑:正如其他人所说,使用
System.Windows.Forms.Timer

我不知道你希望秒表有什么帮助。对我来说,计时器听起来确实是正确的答案。您应该知道有-在这种情况下,可能是您想要的WinForms应用程序或WPF应用程序。Windows forms有一个控件(如下所示)

使用这些方法的原因是因为这些计时器在UI线程上启动,所以您不必像使用其他线程上运行的方法或其他方法那样进行常规的多线程舞蹈


(偷了Jon的WPF链接)

与@Jon Skeet的答案有关,您想要System.Windows.Forms.Timer计时器(框架中的3个计时器中的一个)的原因是它将为您在UI线程上执行计时器代码。其他计时器不为您执行此操作,因此您只能到处调用.CanInvoke和Invoke()(或者使用SynchronizationContext,这有点简单,但仍然很麻烦)。

啊,但是哪一个呢?bcl中有3个不同的计时器。死机。还有System.Timers.Timer和System.Threading.Timer,但是因为这是一个UI元素,所以表单计时器可能是最好的选择。是的,不需要调用表单计时器。除非他在做WPF。将WinForms仅用于计时器有点过火…:-)很明显,“while(stopwatch.ElapsedTime