如果我的表单有一个计时器来检查其工具栏按钮中的某些内容,现在我使用此表单作为子表格提供另一个应用程序,计时器是否仍然运行?任何可能导致它停止工作的线程问题? 我问的原因是我有这样的情况,如果我在另一个应用程序中打开这个应用程序,工具栏没有更新,想要查看问题是否来自这里以及任何可能的修复?
答案 0 :(得分:2)
System.Windows.Forms.Timer将在其创建的同一个线程上引发其Tick事件,因此如果父应用程序以某种方式阻止其主线程,则在线程清除之前,Tick事件中的代码将不会运行,这可能是您所看到的问题的原因,但是,UI的其余部分也应该在该场景中无响应。 System.Timers.Timer将在单独的线程上引发其Tick事件,但是如果您的UI线程被阻止,这将没什么用处,因为即使代码运行,这也会阻止您更新工具栏。