ネイティブ コードから複数の 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);
スレッド化せずにコードを実行すると、アプリケーション ドメインが正しくアンロードされます。