簡介
本文說明的問題,在其中的n 個例外狀況發生於多個執行緒呼叫 C 執行階段 「 atexit"函式內嵌壓縮 7 時,Windows 一次。有可以解決這個問題的更新。在您安裝此更新程式之前,必須安裝此產品的所有先前發行之更新程式。
狀況
當多個執行緒會在 Windows 的內嵌壓縮 7 同時呼叫 C 執行階段atexit函式時,可能會發生例外狀況。當呼叫atexit函式的程式碼則不會序列化,或由編譯器插入atexit函式時,就會發生例外狀況。
原因
C 執行階段atexit函式不是執行緒安全,就會發生這個問題。因此,函式會使用記憶體內部表格已損毀。
解決方案
軟體更新資訊
為 Windows 內嵌壓縮 7 月更新 (年 6 月 2017),就可以從 Microsoft 取得支援的軟體更新。
注意這個 Windows 內嵌壓縮 7 每月更新已開放下載,從下列 「 Microsoft 下載中心 」 網站:
先決條件
此更新程式也已安裝此產品的所有先前發行的更新時,才支援。
重新啟動需求
套用此更新之後,您必須執行整個平台的清除組建。若要這樣做,請使用下列其中一種方法:
-
在 [建置] 功能表中,按一下 [清除方案,,然後按一下 [建置方案。
-
在 [建置] 功能表上按一下 [重建方案]。
您不必套用此軟體更新之後,請重新啟動電腦。
更新取代資訊
此更新不會取代任何其他更新。
檔案資訊
因為這是一個完整波形釋放。幾乎所有的二進位碼檔案會受到此版本。
下列的原始程式檔會受到此版本::
private\winceos\COREOS\core\corelibc\crtw32\startup\cexit.cpp
private\winceos\COREOS\core\corelibc\crtw32\startup\onexit.c其他資訊
在多執行緒環境中, atexit函式表格可能會損毀,另一個 atexit 呼叫因為非執行緒安全。這可能會導致記憶體損毀和例外狀況。Atexit函式用於註冊時關閉程式,或.dll 卸載將要執行的常式。在執行緒安全的瑕疵可能會導致此結束例行工作的變更 」 和 「 損毀的結束函式的資料表。
參考
深入了解 Microsoft 用來描述軟體更新的術語。