C# 计时器是从后台工作人员开始工作的吗?

C# 计时器是从后台工作人员开始工作的吗?,c#,multithreading,timer,C#,Multithreading,Timer,我有一个计时器,当时间用完时不会触发相关函数。我确实设置了一个勾选事件。我将Interval属性设置为12000,并执行了myTimerObject.Start() 然而,我确实在一个单独的线程中启动了这个计时器(在BackgroundWorker的某个地方)。我的理论是,即使计时器似乎正确启动,只要BackgroundWorker关联的DoWork函数执行完毕,线程就会被销毁,这反过来也会导致计时器事件被销毁 这是真的吗?计时器事件没有发生还有其他可能的原因吗?皮特,问题不在于启动计时器的线程

我有一个计时器,当时间用完时不会触发相关函数。我确实设置了一个
勾选
事件。我将
Interval
属性设置为
12000
,并执行了
myTimerObject.Start()

然而,我确实在一个单独的线程中启动了这个计时器(在
BackgroundWorker
的某个地方)。我的理论是,即使计时器似乎正确启动,只要
BackgroundWorker
关联的
DoWork
函数执行完毕,线程就会被销毁,这反过来也会导致计时器事件被销毁


这是真的吗?计时器事件没有发生还有其他可能的原因吗?

皮特,问题不在于启动计时器的线程,而在于您没有保留对它的活动引用,因此它会被垃圾收集

从定时器开始(见“备注”下的注释):

只要你使用定时器,你就可以 必须保留对它的引用。如同 任何托管对象,都有一个计时器 当有垃圾时进行垃圾收集 没有提到它。事实上 计时器仍处于活动状态不会阻止 它不被收集


你想用定时器做什么?它是什么类型的计时器(System.Threading、System.Windows.Forms、System.Timers)。这很重要。请发布您的代码,并在等待响应时阅读此链接。你说得非常有说服力:——)