0

GUI スレッドではないオブジェクトをホストしたい場合、このオブジェクトのすべてのメソッドはこの新しいスレッドで実行されます。そんな感じ:

Thread thread = new Thread(() =>
{
    MyDataInstance = new MyData();
});

thread.SetApartmentState(ApartmentState.STA);
thread.Start();

しかし、これはうまくいきません。それを行う良い方法はありますか?

(他のスレッドでウィンドウを作成し、非表示にしてからそこでホストできますが、最善の解決策ではないようです)

4

1 に答える 1

0

何かを行うメソッドを呼び出す必要があります。現在のコードで行っていることは、データ インスタンスをセットアップすることだけです。

したがって、次のようなメソッドを呼び出す必要があります。

Thread thread = new Thread(new ThreadStart(MethodThatDoesStuff)) { MyDataInstance = new MyData(); };

thread.SetApartmentState(ApartmentState.STA);
thread.Start();

MethodThatDoesStuff物事を永遠にやり続けるためにループが必要になるか、他の制御メカニズム(イベントハンドラーの設定など)が必要になります。

于 2013-11-02T15:51:44.720 に答える