2012-09-19 30 views
-1

我的dev-PC寫入保護內存具有如下: 的WindowsServer2008 + VS2010 + .NET4.0嘗試讀取或WindowsServer2008中+ VS2010 + .NET4.0

我troble: { 「試圖讀取或寫入保護內存這通常是指示其他內存已損壞。」}

我做了什麼: 我做了一個COM組件,並取得了wrappe使用C++/CLI進行編程,然後使用C#訪問。在我的C#代碼中,主線程初始化COM環境,以及多個子線程使用主線程分配的資源。但是,如果主線程退出而沒有Join來等待子線程結束,我會遇到顯示「嘗試讀取或寫入受保護內存的問題,這通常表示其他內存已損壞」。即使我使用try catch(...)來包裝拋出異常的位置,也會發生這種情況。我真的懷疑爲什麼會發生這種情況......

+0

現在看起來不錯。我必須承認,原因是我自己的代碼。我使用調試 - >附加到進程,然後我可以進入本機代碼,所以我可以看到會發生什麼。 – yangzai

回答

0

該消息表明您有一個真正的問題。有很多很多不同的東西可以導致它 - 你需要研究可能涉及的所有非託管代碼。

建議:

一個不那麼明顯的根本原因可能是未能清理已分配的資源:

你確定你是優雅釋放你分配的所有東西?

PS: 爲什麼你退出沒有Join()的主線程?

+0

非常感謝!我將回顧非託管代碼。我的功能是一個小工具,它是下層,我必須確保我不會崩潰所有的過程。所以我必須在沒有Join的情況下測試模型。 – yangzai

相關問題