Загрузить Dll несколько раз, чтобы обеспечить многопоточность в .Net

Моя программа .Net использует fortran Dll для выполнения математической функции (Arpack, решает собственные моды). Я считаю, что fortran содержит статические переменные и обычно не является потокобезопасным. Кроме того, это очень сложно и, вероятно, потребует много усилий, чтобы сделать его потокобезопасным. Dll не t очень большой (700 КБ), поэтому я просто хочу загрузить его много раз (скажем, 4 или, может быть, 8), чтобы потоки работали одновременно. Кто-нибудь знает, как я могу это сделать? Я слышал, что LoadLibrary всегда будет возвращать один и тот же дескриптор при многократном вызове. Итак, в настоящее время мое единственное решение - иметь несколько копий моей Dll на диске (Arpack1.dll, Arpack2.dll и т. Д.) И загружать их по мере необходимости. Довольно ужасно.

Есть идеи?

Euan

5
задан Euan 19 November 2010 в 12:41
поделиться