public void idle_loop() { while (!exit) { mutex.@lock(); thinking = false; while (!thinking && !exit) { Threads.sleepCondition.notify_one(); // Wake up the UI thread if needed sleepCondition.wait(mutex); } mutex.unlock(); if (!exit) { searching = true; GlobalMembersSearch.think(); Debug.Assert(searching); searching = false; } } }
//C++ TO C# CONVERTER TODO TASK: The *= operator cannot be overloaded in C#: public static Score operator *=(Score d, int i) { return(d = GlobalMembersSearch.Score((int)d * i)); }
public static Score operator -(Score d) { return(GlobalMembersSearch.Score(-(int)d)); }
public static Score operator *(int i, Score d) { return(GlobalMembersSearch.Score(i * (int)d)); }
public static Score operator -(Score d1, Score d2) { return(GlobalMembersSearch.Score((int)d1 - (int)d2)); }
//C++ TO C# CONVERTER NOTE: 'extern' variable declarations are not required in C#: //extern Value PieceValue[PHASE_NB][PIECE_NB]; public static Score make_score(int mg, int eg) { return(GlobalMembersSearch.Score((int)((uint)eg << 16) + mg)); }