protected override IMove GetNextMove_Impl(IGameBoard board) { m_GameBoard = board as GameBoard; InkCollectorStrokeEventHandler handler = new InkCollectorStrokeEventHandler(m_InkPicture_Stroke); IMove move = null; m_Waiter = new EventWaitHandle(false, EventResetMode.ManualReset); m_InkPicture.Stroke += handler; try { while (move == null) { m_Waiter.Reset(); if (m_Waiter.WaitOne()) { move = m_Move; } } } finally { m_InkPicture.Stroke -= handler; } return(move); }
protected override IMove GetNextMove_Impl(IGameBoard board) { m_GameBoard = board as GameBoard; InkCollectorStrokeEventHandler handler = new InkCollectorStrokeEventHandler(m_InkPicture_Stroke); IMove move = null; m_Waiter = new EventWaitHandle(false, EventResetMode.ManualReset); m_InkPicture.Stroke += handler; try { while (move == null) { m_Waiter.Reset(); if (m_Waiter.WaitOne()) { move = m_Move; } } } finally { m_InkPicture.Stroke -= handler; } return move; }