おいちゃんのおぼえがき

仕事のTipsをメモするブログ

Invoke って便利になってた

2015-01-13 | Win
C# 2.0 から使える匿名メソッド (anonymous method) のおかげらしい。
たとえば、シリアルポートを見張ってるスレッドの中から、こんな風に・・・。

  c = port.ReadByte();
  Invoke((MethodInvoker)delegate(byte c) {recvtext.Text = c.ToString();});

ずいぶんすっきりしたので、これからはこれですわ。

<== 2015/01/13 追記
引数を渡す時は MethodInvoker は使えなかった・・・。
まず、渡す Method の型を新しく定義する。
 delegate void setByteToText(byte c);
で、渡す Method を宣言して、
 setByteToText btotext = (c) => {
  recvtext.Text = c.ToString();
 };
やっと Invoke に渡す。
 Invoke(btotext, new object[] {ch});

やっぱり難しい・・・。