• ベストアンサー

C#で引数を渡して、スレッド用の関数をよびだすには?

C#でスレッドを使う場合、引数が渡せません。 具体的には、 Thread temp=new Thread(new ThreadStart(message)); temp.Start(); private void message(){ ~} と、なり、ThreadStart(message)の部分で、 ThreadStart(message(mystr))とし、 private void message(string s){} 書くことができないのです。 しかし、関数に、引数を渡せないのは、不便です。 何か、方法は、ないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

適当なクラスを作って その中にスレッドとして呼び出すメソッド(関数を定義します) したら MyClass w = new MyClass(mystr); として(インスタンスのメンバとして保持する) new ThreadStart(w.message) として起動できてmystrが使えると思いますけど

rheda
質問者

お礼

回答ありがとうございます。 クラスで呼び出すようにしました。 うまくいきました。

その他の回答 (1)

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

デリゲートの BeginInvoke メソッドを使うのがお望みのことに一番近いかと思います。

参考URL:
http://www.ailight.jp/blog/kazuk/articles/6287.aspx
rheda
質問者

お礼

回答ありがとうございます。 BeginInvokeを調べてみましたが、 ちょっと、難しかったです。 そこで、クラスをつくり、 そこから、スレッドを呼ぶようにして、 対処できました。

関連するQ&A