private void TransferData(object arg) { ThreadProcParams tpp = arg as ThreadProcParams; int port = tpp.port; string host = tpp.host; RefreshFormDelegate refresh = new RefreshFormDelegate(RefreshStats); while (true) { TcpClient clientProxy = null; TcpListener listener = null; TcpClient clientReal = null; NetworkStream nsProxy = null; NetworkStream nsReal = null; try { clientProxy = new TcpClient(host, 80); listener = new TcpListener(IPAddress.Any, port); nsProxy = clientProxy.GetStream(); listener.Start(); clientReal = listener.AcceptTcpClient(); nsReal = clientReal.GetStream(); int bufSize = 1024; byte[] buf = new byte[bufSize]; int charsReaded = bufSize; do { Thread.Sleep(100); charsReaded = nsReal.Read(buf, 0, bufSize); nsProxy.Write(buf, 0, charsReaded); upTraf += charsReaded; }while (nsReal.DataAvailable); charsReaded = bufSize; do { Thread.Sleep(100); charsReaded = nsProxy.Read(buf, 0, bufSize); nsReal.Write(buf, 0, charsReaded); downTraf += charsReaded; this.Invoke(refresh); }while (nsProxy.DataAvailable); listener.Stop(); clientProxy.Close(); clientReal.Close(); } catch { try { listener.Stop(); nsProxy.Close(); nsReal.Close(); clientProxy.Close(); clientReal.Close(); } catch { } } } }
public void RefreshForm() { RefreshFormDelegate refresh = new RefreshFormDelegate(form.redrawAll); while ((Thread.CurrentThread.ThreadState & ThreadState.Running) == ThreadState.Running) { try { form.Invoke(refresh); } catch (Exception e) { String x = e.Message; // damit keine Warnung kommt } Thread.Sleep(20); } }
void RefreshForm(double[] dvals) { if (this.InvokeRequired) { RefreshFormDelegate d = new RefreshFormDelegate(RefreshForm); this.Invoke(d, new object[] { dvals }); } else { using (Graphics g = Graphics.FromImage(this.BackgroundImage)) { int segmentWidth = (this.Width / dvals.Length) / 2 + 1; g.FillRectangle(Brushes.Black, this.Bounds); for (int i = 0; i < dvals.Length; i++) { double dval = dvals[i]; try { dval *= scalingValues[i]; } catch (Exception) { } int val = (int)dval; Color c = Color.Blue; if(val < 256) c = Color.FromArgb(0, 0, val); else if (val >= 256) { int lightVal = val - 255; if(lightVal>255) lightVal = 255; c = Color.FromArgb(lightVal, lightVal, 255); } LinearGradientBrush b = new LinearGradientBrush(new Point(0, 0), new Point(segmentWidth, 0), Color.Black, c); LinearGradientBrush b2 = new LinearGradientBrush(new Point(segmentWidth, 0), new Point(segmentWidth * 2, 0), c, Color.Black); int x0 = segmentWidth * i * 2; int x1 = segmentWidth * i * 2 + segmentWidth; g.FillRectangle(b, x0, 0, segmentWidth, this.Height); g.FillRectangle(b2, x1, 0, segmentWidth, this.Height); } } this.Refresh(); } }