Вызов функций одна за другой в событийном программировании
Я работаю над программным обеспечением, где программное обеспечение выдает команды для аппаратной панели, и как только команда выдана, ее ответ получен через несколько секунд . существуют различные функции для различных аппаратных команд, таких как
public void FunctionA() { StartCommandA(); }и другие функции по тому же шаблону, которые будут использоваться для выполнения других команд.
FunctionB(); FunctionC();Как только мы получаем ответ Команды А , я вызываю другую функцию из ответа, но этот подход не очень хорош в соответствии с практикой шаблонов проектирования.
Все, что я хочу сделать, это составить список функций и вызвать все эти функции одну за другой, но следующая функция будет вызвана, как только я получу ответ от первых функций.
Что я уже пробовал:
Я попробовал сделать это с помощью Многоадресного делегата, но не могу понять, как мы можем вызвать get the list of functions, как только я добавлю все функции к этим делегатам. Это то, что я пытаюсь сделать с тех пор.
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 } } }
Richard Deeming
Как принимаются ответы? Наверное, тебе лучше было бы иметь дело с async
/ await
подход.
Ammar Shaukat
вызов функции асинхронен, а ответ получен в отдельном методе с именем типа "OnResponse"
Richard Deeming
Является OnResponse
обработчик событий? Если нет, то как он вызывается?
Ammar Shaukat
да это обработчик событий