FIX:当基于 .NET Framework 的应用程序使用 System.Threading.Timer 类时,可能不会在 .NET Framework 1.1 SP1 中报告计时器事件

文章翻译 文章翻译
文章编号: 900822 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

当托管的 Microsoft .NET Framework 应用程序使用 Microsoft .NET Framework 1.1 Service Pack 1 (SP1) 中的“System.Threading.Timer”类时,可能不会报告计时器事件。通常,如果正在运行该应用程序的计算机处于高负载下或许多计时器对象同时运行,则会发生此问题。

解决方案

Microsoft 现在提供了一个受支持的软件更新,但该更新仅用于解决本文中提到的问题。只有系统遇到本文提到的特定问题时才可应用此更新。此软件更新可能还会接受进一步的测试。因此,如果这个问题没有对您造成严重影响,我们建议您等待包含此软件更新的下一个 .NET Framework 1.1 Service Pack。

若要立即解决此问题,请与 Microsoft 产品支持服务部门联系,以获取此软件更新。要获取 Microsoft 产品支持服务电话号码和支持费用信息的完整列表,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意:特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新能够解决您的问题,可免收通常情况下收取的电话支持服务费用。对于所述的特定更新无法解决的其他支持问题和事项,将照常收取支持费用。

先决条件

Microsoft .NET Framework 1.1 SP1

重新启动要求

应用此软件更新后不必重新启动计算机。

软件更新替代信息

此软件更新不替代任何其他软件更新。

文件信息

此软件更新的英文版具有下表中列出的文件属性(或更新的文件属性)。这些文件的日期和时间按协调世界时 (UTC) 列出。当您查看文件信息时,此时间将转换为当地时间。要了解 UTC 与当地时间之间的时差,请使用“控制面板”中“日期和时间”工具中的“时区”选项卡。
日期           时间    版本                   大小   文件名
----------------------------------------------------------
09-Jun-2005  05:46  1.1.4322.2331  2,138,112  Mscorlib.dll
09-Jun-2005  05:48                    10,908  Mscorlib.ldo
09-Jun-2005  05:56  1.1.4322.2331  2,519,040  Mscorsvr.dll
09-Jun-2005  05:57  1.1.4322.2331  2,506,752  Mscorwks.dll

状态

Microsoft 已经确认这是在“适用于”一节中列出的 Microsoft 产品中存在的问题。

更多信息

“Timer”类将作为计时器对象的链接列表进行实现。创建了第一个“System.Threading.Timer”对象之后,线程池管理器将启动一个线程来处理该链接列表。每个计时器对象都将被添加到该链接列表中。处理该链接列表的线程将循环通过该链接列表,并确定根据当前时钟计数预期报告计时器事件的时间。

如果计时器对象已到期,该线程将在更新预期报告计时器事件的时间之前,对回调功能进行异步排队。该线程在处理了链接列表中的所有计时器对象之后,将更新上次处理该链接列表的时间。然后,该线程将计算它在重新处理下一个到期的计时器对象的链接列表之前应休眠的最短时间。

有时候,如果系统负载过高或链接列表中包括许多计时器对象,则在处理完整个链接列表之前,具有较高优先级的线程可能会抢占正在处理的线程。如果发生这种情况,计算出的预期下一次报告计时器事件的时间会早于上次处理链接列表时的时间戳。因此,预期报告计数器事件的时间是过去时间,永远不会到期。

由于预期报告计时器事件的时间已过去,该线程可能会计算出在必须报告计时器事件之前需要等待一个负时段。如果该线程要等待一个负时段,它将进入长时间休眠状态。
有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 有关用于描述 Microsoft 软件更新标准术语的介绍

属性

文章编号: 900822 - 最后修改: 2007年12月3日 - 修订: 2.4
这篇文章中的信息适用于:
  • Microsoft .NET Framework 1.1 Service Pack 1
关键字:?
kbbug kbfix kbqfe kbpubtypekc kbhotfixserver KB900822
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com