public void TcpModeStart() { tcp_alloction_mode_retry_counts++; if (tcp_alloction_mode_retry_counts > 3) { MessageBox.Show("tcp alloctaed prots didnt work."); ChangeMode(TypeOfMode.Dissconnected); return; } TcpUdpMode_Panel.Visible = true; UdpTcpStatus_Label.Text = "Connecting To Allocated Server Port"; ClientWorkerData client_worker_data = new ClientWorkerData(new MessageReceivedInform(MessageReceivedInform), new MainFormInvoke(this.Invoke) , send_to_worker_construct, receive_from_worker_construct, client_worker_pulse_object, client_worker_cancel_construct); client_worker_thread = new Thread(() => ClientWorker.WorkerMainThread(client_worker_data, server_tcp_ip_endpoint)); is_there_worker = true; client_worker_thread.Start(); }