使用System.Windows.Forms.Timer.Start()/停止()与启用=真/假使用

2019-05-13 12:14发布

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

举例来说,如果我们希望当我们做一些处理暂停计时,我们可以这样做:

myTimer.Stop();
// Do something interesting here.
myTimer.Start();

或者,我们可以这样做:

myTimer.Enabled = false;
// Do something interesting here.
myTimer.Enabled = true;

如果没有显著差异, 有没有在社会上哪些选项选择一个共识?

Answer 1:

如通过陈述贝丽和詹姆斯 ,也无明显差异Start \ StopEnabled与问候功能。 然而,在其上使用的决定,应根据上下文和自己的编码风格指南。 这取决于你希望你的代码的读者解释你写什么。

例如,如果你希望他们看到你正在做的事情开始操作和停止操作,则可能需要使用Start/Stop 。 但是,如果你想给的印象是要启用一个功能的可访问性或功能,然后使用Enabledtrue/false是一个更天作之合。

我不认为一个共识,需要在只使用一个或另一个,你真的有一个基于你的代码及维护的需要来决定。



Answer 2:

从微软的文档:

调用Start方法是一样的设置启用为true。 同样,调用Stop方法是一样的设置启用为false。

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

所以,我想有没有什么区别?



Answer 3:

不,他们是eachothers等同。

见Timer.Enabled和Timer.Start / Timer.Stop

要添加到您的有关共识的问题,我会说,它可能是更好的做法是使用可读性启动/停止的方法和它的也比较好,我想。

詹姆士。



Answer 4:

就个人而言,我不喜欢设置属性比变化的值等太多的后果,所以我倾向于坚持Start() / Stop()因为它是明确的(ER)对我说,当你调用一个方法,你所要求的事情发生。

这就是说,我不认为有一大堆模棱两可的有关设置什么Enabled = true打算做:)



Answer 5:

这里有一个简单的代码来测试如何EnabledStart() Stop()相互合作。

做一个测试Windows窗体应用程序,添加两个简单的按钮和粘贴这里面的代码Form1()构造函数:

int c = 0;
Timer tmr1 = new Timer()
{
    Interval = 100,
    Enabled= false
};
tmr1.Tick += delegate
{
    c++;
};

// used to continously monitor the values of "c" and tmr1.Enabled
Timer tmr2 = new Timer()
{
    Interval = 100,
    Enabled = true
};
tmr2.Tick += delegate
{
    this.Text = string.Format("c={0}, tmr1.Enabled={1}", c, tmr1.Enabled.ToString());
};

button1.Click += delegate
{
    tmr1.Start();
};
button2.Click += delegate
{
    tmr1.Stop();
};


Answer 6:

我不使用timer.Stop()timer.Start()因为它们的潜艇timer.Enabled 。 如果要设置定时虚假的申请(在加载)的开始,你必须使用timer.Enabled = falsetimer.Stop()将无法工作。 这就是为什么我用timer.Enabled = false/true



文章来源: Using System.Windows.Forms.Timer.Start()/Stop() versus Enabled = true/false
标签: c# .net timer