2013-07-04 76 views
0

我是新手在C#中,如果你能請幫助我解決我的問題,我想拜師。的DllImport和實例

我有一個非託管的DLL,我寫了下面的包裝類來訪問它的成員。

unsafe public class EpaNet:IDisposable 
    { 
     public void Dispose() 
     { 
      Dispose(true); 
      GC.SuppressFinalize(this); 
     } 

     protected virtual void Dispose(bool disposing) 
     { 
      EpaNet.ENclose(); 
     } 

     [DllImport("epanet2.dll")] 
     public static extern int ENepanet(string Inputfile, string ReportFile, string OutputFile,byte[] N); 

     [DllImport("epanet2.dll")] 
     public static extern int ENopen(string Inputfile, string Reportfile, string Outputfile); 

     some other functions .... 
} 

,並使用這個類我只是寫

EpaNet.ENopen(...) 

這將使我訪問DLL成員。 當我在單線程中運行我的代碼時,此包裝工作正常。 當我想讓這個dll的多個實例在並行模式下運行時,問題就開始了。 因爲所有的成員都在連續的模式,因此靜態的我並不需要實例,但並行模式我必須有這個類中每個有獨立的數據文件工作的各個實例,我不知道該怎麼做。

所以問題是如何創造EPANET類的各種實例?

問候,

Ë

+0

爲什麼你有一個'Dispose'方法時,你不執行'IDisposable'? –

回答