У меня есть старая библиотека C++, которая была разработана для использования в однопоточных средах.Как использовать старую однопоточную библиотеку C++ в многопоточной среде
В библиотеке представлены интерфейсы для инициализации, которые изменяют внутренние структуры данных библиотеки и используют ее, которая только считывает данные и производит вычисления.
Моя цель - использовать эту библиотеку в многопоточном приложении Windows с разными потоками, вызывающими экземпляры DLL, инициализированной различными данными.
Предполагая, что переписывание DLL, чтобы разрешить многопоточность, было бы запретительным, существует ли способ разрешить несколько экземпляров DLL в одном процессе с отдельными пространствами памяти или получить аналогичный результат другими способами?
Еще одна идея, которая могла бы быть интересной, - использовать разные AppDomains, создавая ее с каждым экземпляром библиотеки и загружая ее в нее: AppDomains предоставляет отдельные пространства памяти и может быть выгружен, освобождая память процесса и загруженный сборки внутри. –