У меня есть событие ServerState, получившееся здесь, проверяющее состояние 4 серверов, независимо от того, запущены они или нет. В этом сценарии данного типа сервер будет запущен, но через некоторое время сервер должен быть включен. Таким образом, все 4 сервера вниз и ReadySent = true; это редкий случай, который мы должны посмотреть.
У меня есть метод public write () в этом методе мне нужна логика для проверки условия, что если флаг ReadySent = true; и все серверы ВНИЗ в событии ServerStateReceived, если его удовлетворительный контроль должен перейти к событию ServerStateReceived. если я подожду здесь какое-то время, то все 4 сервера будут включены в это время, в то время только управление будет происходить из события ServerStateReceived для write (), я не хочу использовать метод sleep () или приостановить и т. д. ,, мне нужна логика вот через код
Это алгоритм, который не является кодом C #
Write()
{
If(ReadySent = true && all servers in the event EventHandler ServerStateReceived DOWN)
Go to
public event EventHandler ServerStateReceived
{
here checks going on
if(all servers UP)
go to write() method
}
}
Вот код на C #, где мне нужно реализовать вышеуказанную логику
Public write()
{
// here need the logic to move control to event ServerStateReceived if both flag ReadySent = true; and all servers DOWN stay there for some time without using sleep() once they all UP program control will come to write() method
}
private enum StateType : int
{
Initial = 0,
Up = 1,
Down = 2
}
public event EventHandler ServerStateReceived
{
add
{
m_events.AddHandler(ServerStateEvent, value);
if (m_alarmServerUp == StateType.Up)
{
value(this,
new ServerStateEventArgs(ServerComponentType.AlarmServer, true));
}
else
{
value(this,
new ServerStateEventArgs(ServerComponentType.AlarmServer, false));
}
.
.
.
// **like this 3 more conditions checking are going on(total 4)**