C 執行階段錯誤 R6016
執行緒資料空間不足
注意
如果您在執行應用程式時遇到此錯誤訊息,應用程式因為有內部記憶體問題而關閉。 此錯誤有許多可能的原因,但通常是因為記憶體狀況非常低、應用程式中的錯誤,或應用程式所使用的載入巨集或擴充功能中的Bug所造成。
您可以嘗試進行下列步驟來修正這個錯誤:
- 關閉其他執行中的應用程式,或重新啟動計算機以釋放記憶體。
- 使用 控制台 中的 [應用程式和功能] 或 [程式和功能] 頁面來修復或重新安裝應用程式。
- 使用 控制台 中的 [應用程式與功能] 或 [程式和功能] 頁面,移除、修復或重新安裝應用程式所使用的載入巨集或擴充功能。
- 在 控制台 中檢查 Windows Update 以取得軟體更新。
- 檢查應用程式的更新版本。 如果問題持續發生,請連絡應用程式廠商。
程序設計人員的資訊
之所以發生此錯誤,是因為程式未從操作系統收到足夠的記憶體,無法完成 _beginthread 或 _beginthreadex
呼叫,或線程本機記憶體尚未由 _beginthread
或 _beginthreadex
初始化。
當新的執行緒啟動時,程式庫必須為執行緒建立一個內部資料庫。 當使用作業系統提供的記憶體無法展開資料庫時,執行緒就無法啟動,呼叫的處理序也會停止。 當處理序已建立過多執行緒,或是執行緒區域儲存區已用盡時,就會發生這種情形。
我們建議呼叫 C 執行時間連結庫的可執行檔案應該用於 _beginthreadex
線程建立,而不是 Windows API CreateThread
。 _beginthreadex
會初始化執行緒區域儲存區中許多 CRT 函式所使用的內部靜態儲存區。 如果您使用 CreateThread
建立執行緒,則呼叫需要已初始化的內部靜態儲存區的 CRT 函式時,CRT 可能會終止處理序並發出 R6016。