Действительно ли оболочка C ++ / CLI просто вызывает функцию DLL, или она загружает саму DLL, а затем останавливается и управляется .NET?Собственная процедура получает свой собственный поток или поток, созданный в контексте .NET?Моя интуиция заключается в том, что .NET делает что-то ненужное для управления временем жизни объекта, DLL или потока.
Поэтому я предлагаю добавить событие, чтобы указать, что DLL завершает свою работузапустите новый поток из собственной DLL, чтобы запустить процедуру, и немедленно верните дескриптор события.Пусть ваш .NET ждет этого дескриптора везде, где это уместно.