private void Record() { try { string head = string.Format("({0}): ", DateTime.Now.ToLongTimeString()); msg = head + msg; sw.WriteLine(msg); msg += "\r\n"; DelShow ds = new DelShow(Show); Invoke(ds); } catch { } }
delegate void DelShow(String Msg); //代理 //将对控件的操作写到一个函数中 public void ShowMessage(String para) { if (!txtMessagebox.InvokeRequired) //不需要唤醒,就是创建控件的线程 //如果是创建控件的线程,直接正常操作 { txtMessagebox.Text = DateTime.Now.ToLongTimeString() +" "+ para + System.Environment.NewLine + txtMessagebox.Text; } else //非创建线程,用代理进行操作 { DelShow ds = new DelShow(ShowMessage); //唤醒主线程,可以传递参数,也可以为null,即不传参数 Invoke(ds, new object[] { para }); } }
delegate void DelShow(String Msg); //代理 //将对控件的操作写到一个函数中 public void ShowMessage(String para) { if (!txtMessagebox.InvokeRequired) //不需要唤醒,就是创建控件的线程 //如果是创建控件的线程,直接正常操作 { txtMessagebox.Text = DateTime.Now.ToLongTimeString() + " " + para + System.Environment.NewLine + txtMessagebox.Text; } else //非创建线程,用代理进行操作 { DelShow ds = new DelShow(ShowMessage); //唤醒主线程,可以传递参数,也可以为null,即不传参数 Invoke(ds, new object[] { para }); } }
delegate void DelShow(TextBox labMsg, String Msg); //代理 //将对控件的操作写到一个函数中 public void ShowMessage(TextBox labMsg, String para) { if (!labMsg.InvokeRequired) //不需要唤醒,就是创建控件的线程 //如果是创建控件的线程,直接正常操作 { labMsg.Text = para + labMsg.Text; } else //非创建线程,用代理进行操作 { DelShow ds = new DelShow(ShowMessage); //唤醒主线程,可以传递参数,也可以为null,即不传参数 Invoke(ds, new object[] { labMsg, para }); } }
delegate void DelShow(TextBox labMsg, String Msg); //代理 //将对控件的操作写到一个函数中 public void ShowMessage(TextBox labMsg,String para) { if (!labMsg.InvokeRequired) //不需要唤醒,就是创建控件的线程 //如果是创建控件的线程,直接正常操作 { labMsg.Text =para+ labMsg.Text; } else //非创建线程,用代理进行操作 { DelShow ds = new DelShow(ShowMessage); //唤醒主线程,可以传递参数,也可以为null,即不传参数 Invoke(ds, new object[] {labMsg, para }); } }
public void ReceiveJHData() { TcpClient Client; NetworkStream stream; while (flag) {//第一层循环,连接 try { Client = null; Client = new TcpClient(IP, Port); stream = null; stream = Client.GetStream(); stream.ReadTimeout = 100; } catch { Client = null; msg = "error when client established"; DelShow ds = new DelShow(Show); Invoke(ds); continue; } int i = 0; while (flag) { try { if (!(stream.DataAvailable)) { Thread.Sleep(100); continue; } byte[] responseBytes = new byte[30]; int Count = stream.Read(responseBytes, 0, responseBytes.Length); msg = Encoding.ASCII.GetString(responseBytes).Substring(0, responseBytes.Length).Trim(); msg = string.Format("string({0}): ", ++i) + msg; sw.WriteLine(msg); msg += "\r\n"; DelShow ds = new DelShow(Show); Invoke(ds); } catch { break; } } } }
private void Form1_Load(object sender, EventArgs e) { delShowTime = new DelShow(this.UpdateTime); delShowStockPrice = new DelShow(this.UpdateTicks); }