したがって、2 つの異なるスレッド (thread1 と thread2) があり、次のメソッドで実行されます。
public static void thread1()
{
Assembly asm = Assembly.LoadFrom("t.dll");
Type t = asm.GetType("dis.Code");
Object Res = t.InvokeMember("Start", BindingFlags.InvokeMethod, null, null, null);
}
public static void thread2()
{
Assembly asm = Assembly.LoadFrom("test.dll");
Type t = asm.GetType("dis.Code");
Object Res = t.InvokeMember("Start", BindingFlags.InvokeMethod, null, null, null);
}
私がやろうとしているのは、2 つの異なるファイル "t.dll" と "test.dll" を呼び出すことです。どちらも、上記のプログラムを含む .exe ファイルと同じディレクトリにあります。.dll ファイルが行う唯一のことは、単純な Console.WriteLine です。
ここに問題があります。1 つまたは両方のスレッドで 1 つのファイルを呼び出すと成功し、Console.WriteLine が 2 回ポストされます。ただし、2 つの異なるファイル (各スレッドで 1 つのファイル) を呼び出すと、2 回目の呼び出しで NullReferenceException が発生します。
これはすべて C# でコーディングされています。助けてください :(