По сути, из того, что я понял из того, что мне удалось найти в Интернете, потоки могут проходить между доменами приложений. Теперь я написал следующий код:
const string ChildAppDomain = "BlahBlah";
static void Main()
{
if (AppDomain.CurrentDomain.FriendlyName != ChildAppDomain)
{
bool done = false;
while (!done)
{
AppDomain mainApp = AppDomain.CreateDomain(ChildAppDomain, null, AppDomain.CurrentDomain.SetupInformation);
try
{
mainApp.ExecuteAssembly(Path.GetFileName(Application.ExecutablePath));
}
catch (Exception ex)
{
// [snip]
}
AppDomain.Unload(mainApp);
}
}
else
{
// [snip] Rest of the program goes here
}
}
Это работает нормально, и все встает на свои места ... Основной поток проходит через новую версию моей программы и начинает работать через основное тело приложения. Мой вопрос: как мне заставить его вернуться к родителю AppDomain
? Это возможно? То, чего я пытаюсь добиться, - это совместное использование экземпляра класса между двумя доменами.