呼び出されるパラメーターとしてメソッドを渡すなど、一部のデリゲートの動作が少し弱いです。いくつかのNUnitテストスクリプトを実行しようとしているときに、多くのテストを実行する必要があるものがあります。これらの各テストでは、GUIを作成する必要があるため、STAスレッドが必要です。だから、私は次のようなものを持っています
public class MyTest
{
// the Delegate "ThreadStart" is part of the System.Threading namespace and is defined as
// public delegate void ThreadStart();
protected void Start_STA_Thread(ThreadStart whichMethod)
{
Thread thread = new Thread(whichMethod);
thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
thread.Start();
thread.Join();
}
[Test]
public void Test101()
{
// Since the thread issues an INVOKE of a method, I'm having it call the
// corresponding "FromSTAThread" method, such as
Start_STA_Thread( Test101FromSTAThread );
}
protected void Test101FromSTAThread()
{
MySTA_RequiredClass oTmp = new MySTA_RequiredClass();
Assert.IsTrue( oTmp.DoSomething() );
}
}
この部分はすべて正常に機能します...次のステップです。私は今、STAスレッドも必要とする別のテストセットを持っています。ただし、私が行う必要のある各「こと」には、2つのパラメーターが必要です...両方の文字列(この場合)。
呼び出す必要のあるメソッドと、2つの文字列パラメーターを1回のショットで渡すことができるように、適切なデリゲートを宣言するにはどうすればよいですか...このパターンで実行するテストが20以上ある可能性があり、他の同様の将来の可能性がありますさまざまなパラメーター数とパラメーターのタイプを使用したテストも行います。
ありがとう。