public async void MainTask() { while (true) { using (standardSignalObj = ReceiveObject()) { if (standardSignalObj != null) { await Task.Run(() => { ImageProcessing(); ControllingProcessing(); }); } else { // 서버 닫고... server.Close(); server.Dispose(); server = null; // 서버 정보 지우고... ep = null; // 입력 잠금 풀어주고, 인터넷 차단 풀어주고, 작업관리자 막고... cmdProcessController.CtrlStatusEventCheck(false); firewallPortBlocker.CtrlStatusEventCheck(false); taskMgrController.CheckTaskMgrStatus(false); // 서버 화면 띄우는 폼 닫고... if (InvokeRequired) { this.Invoke(new ScreenOnDelegate(OutputDelegate), 0, null, false); } // 소켓에 쓰이는 Byte 배열 비워주고.... recvData = null; sendData = null; // 소켓 대기 시키고... _ = Task.Run(() => SocketConnection()); break; } } } }
public SignalObj ByteToObject(Byte[] buffer) { string jsonData; SignalObj signal; try { jsonData = Encoding.Default.GetString(buffer); signal = JsonConvert.DeserializeObject <SignalObj>(jsonData); } catch (JsonSerializationException) { signal = new SignalObj(); } return(signal); }