Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > События и потоки


Автор: YankovskyAndrey 6.3.2011, 10:09
Здравствуйте! я погрузился в мир событийного программирования и оказался абсолютно беспомощен.

ситуация такая: существует игра, основанная на событиях(один игрок походил, другой).
в конце игры выкидывается события GameEnded
запускаются n обучающих игр компьютера против компьютера.

Код

for (int i = 0; i < n; i++)
{
   var game = new Game(firstAI, secondAI);
   game.GameEnded += new EventHandler<EventArgs>((sender, e) => { }); // надо что-то здесь написать?
   game.Start()
}
//как убедиться что все игры сыграны?


дополнительной экзотики добавляет тот факт, что всё это происходит в BackgroundWorker'e, чтобы Gui мог показывать красивый индикатор занятости.

спасибо

Автор: YankovskyAndrey 6.3.2011, 10:47
я добавил уродскую надстройку, которая после каждой законченной игры сверяет количество сыгранных игр с общим

Код

_totalGamesCount = n;
_currentGamesCount = 0;
game.GameEnded += new EventHandler<EventArgs>((sender, e) =>
 {
   _currentGamesCount++;
   if (_currentGamesCount  == _totalGamesCount)
      DoSomething
  });

но это какая-то жесть.
у меня крыша едет.

Автор: YankovskyAndrey 6.3.2011, 11:25
и тему я плохо назвал

Автор: -Mikle- 6.3.2011, 13:08
а еще плохо описали в чем проблема...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)