//Console 接收資料 private void OnReceive() { Byte[] buffer = new Byte[1024]; try { while (Console_receiving) { if (serialPort1.BytesToRead > 0) { Int32 length = serialPort1.Read(buffer, 0, buffer.Length); string buf = Encoding.ASCII.GetString(buffer); Array.Resize(ref buffer, length); displayDelegate d = new displayDelegate(updateUI); this.Invoke(d, new Object[] { buf }); Array.Resize(ref buffer, 1024); } Thread.Sleep(20); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
static void display(displayDelegate fn) { fn("bonjour"); }
public void PassingDelegateAsAArgs(displayDelegate del) { del("Hello"); }
private void display(Bitmap image, PictureBox box) { if(box.InvokeRequired) try { displayDelegate dd = new displayDelegate(display); this.BeginInvoke(dd, new object[] { image, box }); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } else { box.Image = image; } }