예제 #1
0
        /// <summary>
        /// The function launched in a seperate thread that will carry out the actual search/thinking.
        /// </summary>
        /// <param name="sender"> </param>
        /// <param name="e"> </param>
        private void FindMove(object sender, DoWorkEventArgs e)
        {
            ThreadParam param = (ThreadParam)e.Argument;

            Move move = m_openingBook.Query(param.MoveOrganizer);

            if (move == null)
            {
                move = m_searchTree.FindBestMove(param.MoveOrganizer, param.searchDepth, param.searchTime);
            }

            e.Result = move;
            m_waitHandle.Set();
        }