public void SendMsg(string Msg) { lock (LockObject) { MsgWriteList.Enqueue(Msg); } }
private void DataGetThread(object Data) { try { var tmpmas = ((string)Data).Split(':'); Client.Connect(tmpmas[0], Convert.ToInt32(tmpmas[1])); var TCPStream = Client.GetStream(); var readdata = new byte[256]; while (Client.Connected) { try { var ReadStr = ""; while (TCPStream.DataAvailable) { var bytes = TCPStream.Read(readdata, 0, readdata.Length); ReadStr += Encoding.UTF8.GetString(readdata, 0, bytes); } lock (LockObject) { if (ReadStr != "") { ReadStr.Remove(ReadStr.Length - splitter.Length); var strarr = ReadStr.Split(new string[] { splitter }, StringSplitOptions.RemoveEmptyEntries); foreach (var str in strarr) { MsgReadList.Enqueue(str); } } while (MsgWriteList.Count > 0) { var data = Encoding.UTF8.GetBytes(MsgWriteList.Dequeue() + splitter); TCPStream.Write(data, 0, data.Length); } if (ExitCommand) { break; } } Thread.Sleep(1); } catch (Exception e) { Log.SendError("[WCNetwork]: " + e.Message); } } TCPStream.Close(); Client.Close(); } catch (Exception e) { Log.SendError("[WCNetwork]: " + e.Message); _IsError = true; } }