private void OneCard_Load(object sender, EventArgs e) { context = BufferedGraphicsManager.Current; // 참조 context.MaximumBuffer = new Size(MAXWIDTH, MAXHEIGHT); // 버퍼 크기 설정 graphics = context.Allocate(CreateGraphics(), new Rectangle(0, distanceFromTop, MAXWIDTH, MAXHEIGHT)); // 버퍼 그래픽스 객체 생성 및 참조 graphics.Graphics.Clear(Color.Gray); // 버퍼 지우기 trumpCard = Properties.Resources.TrumpCard; MainForm = (CardGameLand)Owner; if (Master) { tcpListener = MainForm.tcpListener; clients = new Dictionary <string, BinaryWriter>(); acceptThread = new Thread(new ThreadStart(AcceptClient)); acceptThread.IsBackground = true; acceptThread.Start(); MainForm.tcpClient = new TcpClient(myIP, 4545); if (MainForm.tcpClient.Connected) { ns = MainForm.tcpClient.GetStream(); clientbw = new BinaryWriter(ns); clientbr = new BinaryReader(ns); clientbw.Write(NickName); int dump0 = clientbr.ReadInt32(); string dump1 = clientbr.ReadString(); int dump2 = clientbr.ReadInt32(); int dump3 = clientbr.ReadInt32(); } this.buttonStart.Enabled = true; } else { clientbw = MainForm.bw; clientbr = MainForm.br; } clientReceiver = new ClientReceiver(clientbr, clientbw, textBoxChattingList, labelCurrentPersonCount, this, mycards, players, NickName); clientReceiverThread = new Thread(new ThreadStart(clientReceiver.process)); clientReceiverThread.IsBackground = true; clientReceiverThread.Start(); buttonOneCard.Location = new Point(-100, 0); }
//종료 private void OneCard_FormClosing(object sender, FormClosingEventArgs e) { if (clientReceiverThread != null) { clientReceiverThread.Abort(); clientReceiverThread = null; } if (clientReceiver != null) { clientReceiver = null; } if (clientbr != null) { clientbr.Close(); clientbr = null; } if (clientbw != null) { clientbw.Close(); clientbw = null; } if (ns != null) { ns.Close(); ns = null; } if (MainForm.tcpClient != null) { MainForm.tcpClient.Close(); MainForm.tcpClient = null; } if (MainForm.Game != null) { MainForm.Game.Dispose(); MainForm.Game = null; } if (MainForm.createroom != null) { MainForm.createroom.Dispose(); MainForm.createroom = null; } _shouldStop = true; this.Close(); this.Dispose(); }