Проверки перечислений и флагов в заданных условиях окружающей среды - PullRequest
1 голос
/ 06 августа 2010

У меня есть событие 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)**

1 Ответ

0 голосов
/ 06 августа 2010
Public Write()
{
   System.Threading.Thread.Sleep(20000);
}

Это будет работать, но мне нужно исправить это с помощью кода, основанного на алгоритме или логике, которые я разместил на вопросе

...