您目前已離線,請等候您的網際網路重新連線

FIX:當 .NET Framework 應用程式使用 System.Threading.Timer 類別時,.NET Framework 1.1 SP1 可能不會發出計時器事件。

徵狀
當 .NET Framework 管理之應用程式使用 .NET Framework 1.1 Service Pack 1 (SP1) 的 System.Threading.Timer 類別時,可能不會發出計時器事件。此問題通常起因於執行該應用程式的電腦處於負載極重的狀況,或同時執行多個計時器物件。
解決方案
目前 Microsoft 已提供支援的 Hotfix,但是其目的僅為修正本文所述的問題。僅當系統發生本文所述之特定問題時,才可以套用此 Hotfix。這項軟體可能會接受其他測試。因此,如果此問題沒有對您造成嚴重影響,我們建議您等候下一版包含此軟體更新的 .NET Framework 1.1 Service Pack。

如果要立即解決此問題,請與「Microsoft 產品支援服務」連絡,以取得此軟體更新。如需「Microsoft 產品支援服務」的完整電話號碼清單,以及支援費用的詳細資訊,請造訪下列 Microsoft 網站:注意 在某些特殊情況下,如果 Microsoft 支援人員認為某特定更新程式可以解決您的問題時,可能就不會收取一般因支援電話所產生的費用。一般來說,如果有其他支援問題是特定更新程式無法解決的,才會收取支援費用。

先決條件

Microsoft .NET Framework 1.1 SP1

重新啟動需求

套用此軟體更新之後,無需重新啟動電腦。

軟體更新取代資訊

這個軟體更新程式不會取代任何其他的軟體更新。

檔案資訊

此軟體更新的英文版具有下表中所列的檔案屬性 (或更新檔案屬性)。這些檔案的日期與時間以 Coordinated Universal Time (UTC) 表示。當您檢視檔案資訊時,會轉換為當地時間。如果要查看 UTC 與當地時間的時差,請使用 [控制台] 中 [日期和時間] 工具的 [時區] 索引標籤。
日期時間版本大小檔案名稱
09-Jun-200505:461.1.4322.23312,138,112Mscorlib.dll
09-Jun-200505:4810,908Mscorlib.ldo
09-Jun-200505:561.1.4322.23312,519,040Mscorsvr.dll
09-Jun-200505:571.1.4322.23312,506,752Mscorwks.dll
狀況說明
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確有上述問題。
其他相關資訊
Timer 類別會以計時器物件連結串列執行。當建立第一個 System.Threading.Timer 物件時,執行緒集區管理員即會啟動執行緒處理此連結串列。每一個計時器皆會加入連結串列中。處理連結串列之連結串列循環的執行緒,會指定計時器事件根據目前之時鐘計數發出的時間。

計時器物件如已過期,此執行緒便會在更新預期發出之計時器事件的時間之前,以非同步方式將回呼函式排入佇列。當此執行緒處理過連結串列內所有的計時器物件之後,會隨即更新上次所處理之連結串列的時間。此執行緒會接著計算重新處理下一個過期計時器物件之連結串列前的最短休眠時間。

偶爾當系統負載過重,或連結串列包含許多的計時器物件時,此處理執行緒可能會在整個連結串列處理完畢之前,被較高優先順序的執行緒所佔用。當出現此行為時,會計算下一個預期發出之計時器事件的時間,使之早於上次處理連結串列的時間戳記。因此,下一個預期發出的計時器事件的時間會在過去,但永遠不會過期。

由於下一個預期發出的計時器事件的時間已經過去,執行緒會計算出必須發出計時器事件的負值等待期間。當執行緒具有負值的等待期間時,會進入一段長時間的休眠。
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
824684說明 Microsoft 軟體更新的標準術語
內容

文章識別碼:900822 - 最後檢閱時間:11/09/2006 06:21:06 - 修訂: 2.6

  • Microsoft .NET Framework 1.1 Service Pack 1
  • kbfix kbbug kbpubtypekc kbhotfixserver kbqfe KB900822
意見反應