Carregue DLL várias vezes para permitir multi-threading no .Net

Meu programa .Net usa uma DLL fortran para executar uma função matemática (Arpack, resolve os modos próprios). Acredito que o fortran contém variáveis estáticas e geralmente não é seguro para threads. Também é muito complicado e provavelmente exigiria muito trabalho duro para torná-lo seguro. A DLL não é muito grande (700K), então eu só quero carregá-la várias vezes (digamos 4 ou talvez 8) para permitir que os threads funcionem simultaneamente. Alguém tem alguma idéia de como eu posso fazer isso? Ouvi dizer que LoadLibrary sempre retornará o mesmo identificador quando chamado várias vezes. Portanto, como está, minha única solução é ter várias cópias da minha DLL no disco (Arpack1.dll, Arpack2.dll etc.) e carregá-las conforme necessário. Muito horrível.

Alguma ideia?

Euan

questionAnswers(3)

yourAnswerToTheQuestion