【问题标题】:Scheduled thread vs Threading.Timer in .NET.NET 中的计划线程与 Threading.Timer
【发布时间】:2011-10-12 16:25:31
【问题描述】:

我需要在与 VB.NET 中的 UI 不同的线程中执行代码。代码需要每隔几秒执行一次,并且在用户执行某个活动时也需要执行。该线程将执行将更改 UI 的任务。我应该使用普通线程,然后使用 Windows.Forms.Timer Timer 每隔几秒钟运行一次该线程,还是 System.Threading.Timer 类会更好地工作?

此外,线程必须执行的代码包含多个函数。我应该在同一个线程上执行所有函数还是考虑将它们分成几个线程?

谢谢

【问题讨论】:

    标签: .net multithreading


    【解决方案1】:

    如果您更改 UI,Windows.Forms.Timer 是最好的方法,因为 Timer-Elapsed 事件将在 ui 线程中引发,因此您不必更改它。如果您想在更改 ui 之前进行持久的操作,那么我更喜欢使用 Threading.Timer。我会做出持久的动作,然后切换到 UI 线程(通过 Invoke)并更改 ui。这将使 UI 对用户操作更具反应性。

    【讨论】:

    • 谢谢,我会试试的。该线程需要大约 1.5 秒才能执行,因此它必须位于单独的线程中,否则程序响应速度不快。
    猜你喜欢
    • 2019-04-01
    • 2011-09-29
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多