4

1つのボタンクリックで2つの異なるボタンクリックイベントを組み合わせたい。これらの2つのボタンクリックイベントに2つのスレッドがあり、winformのテキストボックスを更新します。これらの2つのボタンを組み合わせようとすると、スレッドは同期的に実行されますが、thread1の終了後にthread2を実行する必要があります。どうやってやるの?thread2.startよりthread1.startを実行しようとしましたが、すべてのクリックイベントが一度に実行されるため、機能しませんでした。助けてくれる人はいますか?ありがとう。

4

2 に答える 2

4

あなたはそれを次のように行うことができます

new Thread(() =>
    {
        Method1();
        Method2();
    }).Start();

TPLを使用するかそれ以上

Task.Factory.StartNew(() => Method1())   
            .ContinueWith(t => Method2());
于 2012-12-23T20:28:14.573 に答える
2

.Net 4: .net 4以降を使用している場合は、タスク、特にContinueWithメソッドを確認してください。これは、はるかに優れた、より均一なアプローチです。

.Net 1-3.5: すでに自分でスレッドを管理している場合、おそらく最良の方法はスレッドを1つだけにすることです。

new Thread(DoJob1And2).Start()

メソッドが次のように定義されている場合:

void DoJob1And2()
{
   try
   {
       Job1();
   }
   finally
   {
       Job2();
   }
}

void Job1()
{
   // Do job 1
}

void Job2()
{
   // Do job 2
}
于 2012-12-23T20:18:34.773 に答える