當多個執行緒同時在 Windows 的內嵌壓縮 7 呼叫 C 執行階段 「 atexit"函式的修正: 例外狀況

簡介

本文說明的問題,在其中的n 個例外狀況發生於多個執行緒呼叫 C 執行階段 「 atexit"函式內嵌壓縮 7 時,Windows 一次。有可以解決這個問題的更新。在您安裝此更新程式之前,必須安裝此產品的所有先前發行之更新程式。

狀況

當多個執行緒會在 Windows 的內嵌壓縮 7 同時呼叫 C 執行階段atexit函式時,可能會發生例外狀況。當呼叫atexit函式的程式碼則不會序列化,或由編譯器插入atexit函式時,就會發生例外狀況。

原因

C 執行階段atexit函式不是執行緒安全,就會發生這個問題。因此,函式會使用記憶體內部表格已損毀。

解決方案

軟體更新資訊

為 Windows 內嵌壓縮 7 月更新 (年 6 月 2017),就可以從 Microsoft 取得支援的軟體更新。

注意這個 Windows 內嵌壓縮 7 每月更新已開放下載,從下列 「 Microsoft 下載中心 」 網站:

Windows 內嵌壓縮 7 的更新

先決條件

此更新程式也已安裝此產品的所有先前發行的更新時,才支援。

重新啟動需求

套用此更新之後,您必須執行整個平台的清除組建。若要這樣做,請使用下列其中一種方法:

  • 在 [建置] 功能表中,按一下 [清除方案,,然後按一下 [建置方案

  • 在 [建置] 功能表上按一下 [重建方案]。

您不必套用此軟體更新之後,請重新啟動電腦。

更新取代資訊

此更新不會取代任何其他更新。

檔案資訊

因為這是一個完整波形釋放。幾乎所有的二進位碼檔案會受到此版本。

下列的原始程式檔會受到此版本::

private\winceos\COREOS\core\corelibc\crtw32\startup\cexit.cpp
private\winceos\COREOS\core\corelibc\crtw32\startup\onexit.c

其他資訊

在多執行緒環境中, atexit函式表格可能會損毀,另一個 atexit 呼叫因為非執行緒安全。這可能會導致記憶體損毀和例外狀況。Atexit函式用於註冊時關閉程式,或.dll 卸載將要執行的常式。在執行緒安全的瑕疵可能會導致此結束例行工作的變更 」 和 「 損毀的結束函式的資料表。

參考

深入了解 Microsoft 用來描述軟體更新的術語

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×