私は c# の初心者です。私の問題を解決するのを手伝っていただければ、見習います。
管理されていない 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 クラスのさまざまなインスタンスを作成する方法です。
よろしく、
e