我是处理线程的新手。
System.Diagnostics和System.Timers在线程上下文中的作用是什么? 两者都是相互替代的,或者是为了完成一些独特的任务而实现的?
答案 0 :(得分:11)
StopWatch用于测量时间间隔。定时器用于调度在将来的某个时刻执行的方法。它们完全不同。
答案 1 :(得分:3)
System.Diagnostics命名空间提供了允许您与系统进程,事件日志和性能计数器进行交互的类。
System.Timers命名空间提供了Timer组件,允许您按指定的时间间隔引发事件。
答案 2 :(得分:1)
请谨慎使用System.Timers。
.Net中基本上有三个计时器
System.Timers.Timer
System.Threading.Timer
System.Windows.Forms.Timer
Three Timers available in .Net
需要注意的关键是收集问题。
如果您的线程在某个点之后没有引用某个对象,则可以对其进行垃圾回收。这实际上是IDisposable模式的关键原因之一,因为调用dispose意味着保持对象存活,直到至少在dispose()调用结束时。这是当你说
时调用的方法using(var myobj = new System.Threading.Timers())
{
//run program here
} //Timer can be collected from now.
答案 3 :(得分:0)
作为另一种选择,我一直在我的应用程序中使用BackgroundWorker class并取得了良好的效果