使用System.Windows.Forms.Timer.Start()/ Stop()与Enabled = true/false

Ste*_*art 31 .net c# timer

假设我们在.Net应用程序中使用System.Windows.Forms.Timer,在计时器上使用Start()和Stop()方法与使用Enabled属性之间是否有任何有意义的区别?

例如,如果我们希望在进行某些处理时暂停计时器,我们可以这样做:

myTimer.Stop();
// Do something interesting here.
myTimer.Start();
Run Code Online (Sandbox Code Playgroud)

或者,我们可以这样做:

myTimer.Enabled = false;
// Do something interesting here.
myTimer.Enabled = true;
Run Code Online (Sandbox Code Playgroud)

如果没有显着差异,社区是否就选择哪个选项达成共识?

Jef*_*tes 31

如通过陈述贝丽詹姆斯,也无明显差异对比与问候功能.但是,决定使用哪个应该基于上下文和您自己的编码风格指南.这取决于您希望代码的读者如何解释您所编写的内容.Start\StopEnabled

例如,如果您希望他们在启动操作并停止该操作时看到您正在执行的操作,则可能需要使用Start/Stop.但是,如果您想给人的印象是您正在启用功能的辅助功能或功能,那么使用Enabledtrue/false更自然.

我不认为只使用其中一个就需要达成共识,您必须根据代码的需求及其维护来决定.


BFr*_*ree 15

来自Microsoft的文档:

调用Start方法与将Enabled设置为true相同.同样,调用Stop方法与将Enabled设置为false相同.

http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.enabled.aspx

所以,我猜没有区别......


Jam*_*mes 6

不,他们每个人都是等同的.

请参见Timer.EnabledTimer.Start/Timer.Stop

为了在你的问题中添加关于共识的内容,我想说它可能是更好的做法,使用Start/Stop方法,并且我认为它对可读性也更好.

詹姆士.


Jon*_*ant 5

就个人而言,我不喜欢设置属性除了更改值之外还有太多后果,所以我倾向于坚持Start()/ Stop()因为它很清楚(呃)对我来说,当你调用一个方法时,你要求的东西是发生.

也就是说,我不认为关于什么设置会有很多模糊不清Enabled = true:)