假设我们是在.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;
如果没有显著差异, 有没有在社会上哪些选项选择一个共识?
如通过陈述贝丽和詹姆斯 ,也无明显差异Start
\
Stop
与Enabled
与问候功能。 然而,在其上使用的决定,应根据上下文和自己的编码风格指南。 这取决于你希望你的代码的读者解释你写什么。
例如,如果你希望他们看到你正在做的事情开始操作和停止操作,则可能需要使用Start/Stop
。 但是,如果你想给的印象是要启用一个功能的可访问性或功能,然后使用Enabled
和true/false
是一个更天作之合。
我不认为一个共识,需要在只使用一个或另一个,你真的有一个基于你的代码及维护的需要来决定。
从微软的文档:
调用Start方法是一样的设置启用为true。 同样,调用Stop方法是一样的设置启用为false。
http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.enabled.aspx
所以,我想有没有什么区别?
不,他们是eachothers等同。
见Timer.Enabled和Timer.Start / Timer.Stop
要添加到您的有关共识的问题,我会说,它可能是更好的做法是使用可读性启动/停止的方法和它的也比较好,我想。
詹姆士。
就个人而言,我不喜欢设置属性比变化的值等太多的后果,所以我倾向于坚持Start()
/ Stop()
因为它是明确的(ER)对我说,当你调用一个方法,你所要求的事情发生。
这就是说,我不认为有一大堆模棱两可的有关设置什么Enabled = true
打算做:)
这里有一个简单的代码来测试如何Enabled
, Start()
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();
};
我不使用timer.Stop()
和timer.Start()
因为它们的潜艇timer.Enabled
。 如果要设置定时虚假的申请(在加载)的开始,你必须使用timer.Enabled = false
, timer.Stop()
将无法工作。 这就是为什么我用timer.Enabled = false/true
。
文章来源: Using System.Windows.Forms.Timer.Start()/Stop() versus Enabled = true/false