private void RemoveModule(ModbusSlave module) { moduleList.Remove(module); module.Dispose(); OnConnectionChange(); }
private void ListenClinetConnect() { TcpClient tcpClient; while (fWaiting) { try { tcpClient = tcpListener.AcceptTcpClient(); } catch (Exception) { break; } //For every client, create a new receive data thread ModbusSlave module = new ModbusSlave(tcpClient); moduleList.Add(module); OnConnectionChange(); Task newCommunication = communicateTask.StartNew(() => { GetModbusData(module); }, TaskCreationOptions.PreferFairness | TaskCreationOptions.LongRunning | TaskCreationOptions.AttachedToParent); //for .Net 3.5 or ealer; //ThreadPool.QueueUserWorkItem(new WaitCallback(GetModbusData), module); } }