- ベストアンサー
C#で引数を渡して、スレッド用の関数をよびだすには?
C#でスレッドを使う場合、引数が渡せません。 具体的には、 Thread temp=new Thread(new ThreadStart(message)); temp.Start(); private void message(){ ~} と、なり、ThreadStart(message)の部分で、 ThreadStart(message(mystr))とし、 private void message(string s){} 書くことができないのです。 しかし、関数に、引数を渡せないのは、不便です。 何か、方法は、ないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
適当なクラスを作って その中にスレッドとして呼び出すメソッド(関数を定義します) したら MyClass w = new MyClass(mystr); として(インスタンスのメンバとして保持する) new ThreadStart(w.message) として起動できてmystrが使えると思いますけど
その他の回答 (1)
- UKY
- ベストアンサー率50% (604/1207)
回答No.2
デリゲートの BeginInvoke メソッドを使うのがお望みのことに一番近いかと思います。
質問者
お礼
回答ありがとうございます。 BeginInvokeを調べてみましたが、 ちょっと、難しかったです。 そこで、クラスをつくり、 そこから、スレッドを呼ぶようにして、 対処できました。
お礼
回答ありがとうございます。 クラスで呼び出すようにしました。 うまくいきました。