私は、ソフトウェアがハードウェア パネルに対してコマンドを発行し、コマンドが発行されると、その応答が数秒後に受信されるソフトウェアに取り組んでいます。次のようなさまざまなハードウェアコマンドにはさまざまな機能があります
public void FunctionA()
{
StartCommandA();
}
および他のコマンドを実行するために使用される同じパターンの他の関数。
FunctionB();
FunctionC();
コマンド A の応答を受け取ったら、その応答から別の関数を呼び出しますが、このアプローチは設計パターンの慣行からすると適切ではありません。
私がやりたいことは、関数のリストを作成し、これらすべての関数を次々に呼び出すことですが、最初の関数の応答を取得すると、次の関数が呼び出されます。
マルチキャストデリゲートを使用してこれを試しましたが、すべての関数をそのデリゲートに追加すると、関数のリストを取得する方法を見つけることができません。これは私がやろうとしていることです。
FunList funList_ConfigAndSerialTests = new FunList(StartSerialTest);
funList_ConfigAndSerialTests += StartSerialTest;
funList_ConfigAndSerialTests += StartMsrTest;
funList_ConfigAndSerialTests += StartContactLessTest;
//funList_ConfigAndSerialTests.Invoke();
Delegate[] del = funList_ConfigAndSerialTests.GetInvocationList();
foreach (Delegate item in funList_ConfigAndSerialTests.GetInvocationList())
{
while (true)
{
if (IsResponseReceived == true)
{
// Call function here
}
}
}