我正在开发一个软件,其中软件为硬件面板发出命令,一旦发出命令,几秒钟后就会收到它的响应。不同的硬件命令有不同的功能,例如
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
}
}
}