草庐IT

idle-timer

全部标签

c# - System.Timers.Timer 与 System.Threading.Timer 的线程安全

在本文中:http://msdn.microsoft.com/en-us/magazine/cc164015.aspx作者声明System.Threading.Timer不是线程安全的。从那时起,这在博客上、Richter的书“CLRviaC#”和SO中都重复了这一点,但这从来没有被证明是合理的。此外MSDNdocumentation确保“这种类型是线程安全的。”1)谁说的是真话?2)如果这是原始文章,是什么让System.Threading.Timer不是线程安全的,以及它的包装器System.Timers.Timer如何实现更多的线程安全?谢谢 最佳答案

c# - System.Timers.Timer 与 System.Threading.Timer 的线程安全

在本文中:http://msdn.microsoft.com/en-us/magazine/cc164015.aspx作者声明System.Threading.Timer不是线程安全的。从那时起,这在博客上、Richter的书“CLRviaC#”和SO中都重复了这一点,但这从来没有被证明是合理的。此外MSDNdocumentation确保“这种类型是线程安全的。”1)谁说的是真话?2)如果这是原始文章,是什么让System.Threading.Timer不是线程安全的,以及它的包装器System.Timers.Timer如何实现更多的线程安全?谢谢 最佳答案

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

假设我们在.Net应用程序中使用System.Windows.Forms.Timer,在计时器上使用Start()和Stop()方法与使用Enabled属性之间是否有任何有意义的区别?例如,如果我们希望在进行某些处理时暂停计时器,我们可以这样做:myTimer.Stop();//Dosomethinginterestinghere.myTimer.Start();或者,我们可以这样做:myTimer.Enabled=false;//Dosomethinginterestinghere.myTimer.Enabled=true;如果没有显着差异,社区是否就选择哪个选项达成共识?

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

假设我们在.Net应用程序中使用System.Windows.Forms.Timer,在计时器上使用Start()和Stop()方法与使用Enabled属性之间是否有任何有意义的区别?例如,如果我们希望在进行某些处理时暂停计时器,我们可以这样做:myTimer.Stop();//Dosomethinginterestinghere.myTimer.Start();或者,我们可以这样做:myTimer.Enabled=false;//Dosomethinginterestinghere.myTimer.Enabled=true;如果没有显着差异,社区是否就选择哪个选项达成共识?

c# - 对使用 Timer 的类进行单元测试

我有一个类,它有一个类型为System.Windows.Forms.Timer的私有(private)成员。还有一个私有(private)方法,每次我的计时器计时时都会调用它。是否值得测试该方法?(因为它是私有(private)的)我如何测试它?(我知道我可以让我的测试类继承我想测试的类...)我应该mock我的计时器吗?因为如果我必须测试一个使用内部计时器的类,我的测试可能需要很长时间才能完成,对吗?编辑:实际上,该方法对时间有依赖性,代码如下:privatevoidalertTick(objectsender,EventArgse){if(getRemainingTime().Se

c# - 对使用 Timer 的类进行单元测试

我有一个类,它有一个类型为System.Windows.Forms.Timer的私有(private)成员。还有一个私有(private)方法,每次我的计时器计时时都会调用它。是否值得测试该方法?(因为它是私有(private)的)我如何测试它?(我知道我可以让我的测试类继承我想测试的类...)我应该mock我的计时器吗?因为如果我必须测试一个使用内部计时器的类,我的测试可能需要很长时间才能完成,对吗?编辑:实际上,该方法对时间有依赖性,代码如下:privatevoidalertTick(objectsender,EventArgse){if(getRemainingTime().Se

c# - 如何使用.NET Timer 类在特定时间触发事件?

我想在我的应用程序中触发一个事件,该事件在白天的特定时间连续运行,比如下午4:00。我考虑每秒运行一次计时器,当时间等于下午4:00时运行事件。这样可行。但我想知道是否有办法只在下午4:00获得一次回调而不必一直检查。 最佳答案 使用System.Threading.Timer这样的事情怎么样?类(class)?vart=newTimer(TimerCallback);//Figurehowmuchtimeuntil4:00DateTimenow=DateTime.Now;DateTimefourOClock=DateTime.To

c# - 如何使用.NET Timer 类在特定时间触发事件?

我想在我的应用程序中触发一个事件,该事件在白天的特定时间连续运行,比如下午4:00。我考虑每秒运行一次计时器,当时间等于下午4:00时运行事件。这样可行。但我想知道是否有办法只在下午4:00获得一次回调而不必一直检查。 最佳答案 使用System.Threading.Timer这样的事情怎么样?类(class)?vart=newTimer(TimerCallback);//Figurehowmuchtimeuntil4:00DateTimenow=DateTime.Now;DateTimefourOClock=DateTime.To

c# - 可靠地停止 System.Threading.Timer?

好吧,我已经搜索了很多解决方案。我正在寻找一种干净简单的方法来防止System.Threading.Timer的回调方法在我停止后被调用。我似乎找不到任何东西,这导致我偶尔求助于可怕的thread-thread.sleep-thread.abort组合。可以用lock来实现吗? 最佳答案 一个更简单的解决方案可能是将Timer设置为永不恢复;方法Timer.Change可以为dueTime和period取值,指示计时器永不重启:this.Timer.Change(Timeout.Infinite,Timeout.Infinite);

c# - 可靠地停止 System.Threading.Timer?

好吧,我已经搜索了很多解决方案。我正在寻找一种干净简单的方法来防止System.Threading.Timer的回调方法在我停止后被调用。我似乎找不到任何东西,这导致我偶尔求助于可怕的thread-thread.sleep-thread.abort组合。可以用lock来实现吗? 最佳答案 一个更简单的解决方案可能是将Timer设置为永不恢复;方法Timer.Change可以为dueTime和period取值,指示计时器永不重启:this.Timer.Change(Timeout.Infinite,Timeout.Infinite);