none
マルチスレッドからのFormの更新 RRS feed

  • 質問

  • C#でプログラムを組むのは初心者なのでどなたか教えてください。

     

    マルチスレッドで処理をしているのですが、From 以外のスレッドから Form 内のコントロールの

    表示を変更しようとすると、Exception が発生してしまいます。

     

    何か良い処理はないのでしょうか?

    MFC だと メインウィンドウに PostMessage, SendMessage すれば処理できていたのですが、

    C#のFormではそういう機能はないようです。

     

    実際には SerialPort からの受信、TcpChannel で要求があれば、Form の表示を変更したい

    のですが、思うように行きません。

     

    よろしくお願いします。

     

    以上です。

     

    2008年3月11日 4:11

回答

すべての返信

  •  としぼ@jfe-tech さんからの引用

    マルチスレッドで処理をしているのですが、From 以外のスレッドから Form 内のコントロールの

    表示を変更しようとすると、Exception が発生してしまいます。

     

    以下に、原因と対策がまとめられていますよ。

    http://csharper.blog57.fc2.com/blog-entry-36.html

     

    2008年3月11日 4:37
  • ありがとうございました。

    大変参考になりました。

     

    2008年3月11日 23:54
  • こんにちは。中川俊輔 です。

     

    GENZ0さん、回答ありがとうございます。

     

    としぼ@jfe-techさん、フォーラムのご利用ありがとうございます。

    有用な情報と思われたため、GENZ0さんの回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    有用な情報と思われる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

    としぼ@jfe-techさんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

     

    2008年3月18日 1:33