private void ProcessData(SocketData data) { switch (data.Command) { case (int)SocketCommand.NOTIFY: MessageBox.Show(data.Message); break; case (int)SocketCommand.NEW_GAME: this.Invoke((MethodInvoker)(() => { NewGame(); pnlChessBoard.Enabled = false; })); break; case (int)SocketCommand.SEND_POINT: this.Invoke((MethodInvoker)(() => { prcbCoolDown.Value = 0; pnlChessBoard.Enabled = true; tmCoolDown.Start(); ChessBoard.OtherPlayerMark(data.Point); })); break; case (int)SocketCommand.END_GAME: MessageBox.Show("Đã 5 con trên 1 hàng"); break; case (int)SocketCommand.TIME_OUT: MessageBox.Show("Hết giờ"); break; case (int)SocketCommand.QUIT: tmCoolDown.Stop(); MessageBox.Show("Người chơi đã thoát"); break; default: break; } Listen(); }
void Listen() { Thread listenThread = new Thread(() => { try { SocketData data = (SocketData)socket.Receive(); ProcessData(data); } catch (Exception e) { } }); listenThread.IsBackground = true; listenThread.Start(); }