2012-03-18 12 views
0

私はドロップダウンリストを持っており、そのドロップダウンリストの選択値を取得する必要があるセカンダリスレッドがあります。常にnullまたは空の文字列を返します。セカンダリ文字列の値を取得する方法はありますか?セカンダリスレッドのドロップダウンリストの選択

+0

センド/スレッドを開始する前の値を与えます。 – Aristos

答えて

1

UI要素はUIスレッドが所有します。これはトレッドセーフな操作ではないので、決してこれらにアクセスしようとしないでください。作成時にドロップダウンの値をスレッドに渡し、2番目のスレッドでコピーした値を使用します。

例:

static void Main(string[] args) 
{ 
    System.Threading.Thread myThread = new System.Threading.Thread(asyncCode); 
    myThread.Start(yourParameterObject); 
} 

static void asyncCode(object parameters) 
{ 
    // Use the parameters passed 
} 
+0

どのように新しいスレッドに値を渡すのですか?私は、メソッド名をパラメータとして受け取るスレッドbackgroundThread = new Thread(MyMethod)を使用しますが、メソッド自体はパラメータなしでなければなりません。ありがとうございました。 –

+0

ありがとうございます。しかし、私が読んだものからは、(配列やリストとして送信されるのでない限り)1つのパラメータだけを送ることができます。私はラムダ式を使って別の対話を見つけました:Thread t = new Thread(()=> asyncCode(param1、param2)); static void asyncCode(int param1、string param2){//渡されたパラメータを使用} –

+1

@DovMiller:渡すことができるパラメータはオブジェクト型です。したがって、オブジェクトから派生する任意の型を渡すことができます。プロパティとして複数のパラメータを含むクラスを作成できます。 – CodeZombie

関連する問題