0

私のアプリケーションでは、最初のボタン イベントが再開された後に別のイベントを起動できるように、ボタン イベントをしばらく中断したいと考えています。c# では、スレッドを非同期に使用して実行する方法がわかりません。助けてください。前もって感謝します..

4

3 に答える 3

2

これはアプリケーションの設計上の問題のように思えますが、間違った方向から取り組んでいます。

于 2009-04-21T05:03:22.133 に答える
2

2 番目のイベントを発生させ、それが終了するのを待ってから続行する場合は、最初のイベント ハンドラー内から同期的に発生させてみませんか? それははるかに簡単です。

編集:

1 つのボタンで別のボタンのイベント ハンドラーにあるコードをトリガーする場合は、代わりに別の関数に移動して、それを呼び出すことをお勧めします。つまり、次のようにします。

private void button1_Click(object sender, EventArgs e)
{
    DoButtonStuff();
}

private void button2_Click(object sender, EventArgs e)
{
    DoButtonStuff();
}

private void DoButtonStuff()
{
    // code that was originally in button2_Click()
}

ボタンがまったく同じことを行う場合は、まったく同じハンドラーを割り当てることもできます。

しかし、実際にプログラムでボタンを「クリック」する必要がある場合、おそらく最も簡単な方法は次のとおりです。

button2.PerformClick();

それはClickイベントを発生させます。

于 2009-04-21T04:54:38.613 に答える
0

バックグラウンドワーカーで何かできますか

background worker bw = new background worker


button1

while bw.inprogress
{

//kill time

}
bw.(dosomething)



button2
{
while bw.inprogress
{
//killtime

}
bw.run(dosomething)
}
于 2009-04-21T12:10:03.060 に答える