发
for (; ; )
{
Thread newThread = new Thread(MainWindow.LumEnergyInformation);
newThread.Start();
InitializeComponent();
}
定时器:
Timer myTimer = new Timer();
myTimer.Elapsed += new ElapsedEventHandler(LumEnergyInformation);
myTimer.Interval = 10000; // in milliseconds
/myTimer.Start();
答案 0 :(得分:0)
在这两种情况下,Thread或Timer,您的方法将在不同的线程中执行,与其他线程并行执行。
主要区别在于:
因此,所有这些都取决于您的用例:如果您的应用程序使用大量线程,则Timer可以更高效。如果您调用的方法需要花费大量时间,那么使用Timer而不是Thread将没有任何好处,因为线程不会被回收。
答案 1 :(得分:0)
问题应该是 - 如果使用方法是线程安全的话,选择Timer或Thread的内容。在此,最重要的是要考虑。那么你的方法是否需要任何超出它自己的焦点的东西?是否需要使用大量数据(在许多对象的意义上)或只需要一个?
重要的问题是,主要内容是否可以运行,而不是方法的结果?
如果你能用“是”回答这两个问题,那么就用线程向前走。如果没有,请尝试使用yes来评估回答这两个问题所需的工作量,并前往线程。
线程与计时器的原因
计时器主要只是一个巨大的事件构造。 Timer.Tick是事件驱动的,Timer.End是事件驱动的,依此类推。全部通过基于OS的控制。此外,如果计时器想要执行它的DoSomething,主应用程序必须暂停并执行代码。
因此,如果您的代码是100%独立或线程安全==>跟线程一起去。