2012-04-13 6 views
2

ネイティブコードから複数のMonoドメインをアクティブにするマルチスレッドアプリケーションがあります。 各ドメインには独自のスレッドがあります。私は、アプリケーションのクラッシュドメインをアンロードするときマルチスレッドコンテキストでのモノドメインのアンロード

///Create a new domain. 
m_domain = mono_domain_create_appdomain((char*) name.c_str(), NULL); 

///Activate the domain. 
mono_domain_set(m_domain, 0); 

///Register the current thread 
mono_thread_attach(m_domain); 

///Invoke some code ... 
mono_runtime_invoke (m_method, m_objectInstance, NULL, &exception); 

:しかし 私は、ドメインを有効にするには、次のコードを使用し

mono_domain_unload(m_domain); 

私はスレッドなしでコードを実行すると、アプリケーションドメインが正しくアンロードされます。

答えて

1

私はmono_domain_unloadは、をmono_assembly_close関数を呼び出した:

mono_assembly_close(m_assembly); 

は、だから私はこの呼び出しを削除し、アンロードコードのクリティカルセクションを作成しました。

関連する問題