Как приостановить событие кнопки в C #? - PullRequest
0 голосов
/ 21 апреля 2009

В моем приложении я хочу приостановить событие кнопки на некоторое время, чтобы я мог запустить другое событие, после которого возобновится событие первой кнопки. В C # я не понимаю, как мне выполнить это с помощью потоков асинхронно. Пожалуйста помоги. Заранее спасибо ..

Ответы [ 3 ]

2 голосов
/ 21 апреля 2009

Это звучит как проблема дизайна в вашем приложении, и вы решаете ее не с того конца.

2 голосов
/ 21 апреля 2009

Если вы хотите запустить второе событие и дождаться его завершения, прежде чем продолжить, то почему бы просто не запустить синхронно из обработчика первого события? Это было бы намного проще.

EDIT:

Если вы хотите, чтобы одна кнопка запускала код, который находится в обработчике событий другой кнопки, я бы предложил вместо этого переместить ее в отдельную функцию и просто вызвать ее. Другими словами, сделайте это:

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.

0 голосов
/ 21 апреля 2009

не могли бы вы сделать что-нибудь с фоновым работником

background worker bw = new background worker


button1

while bw.inprogress
{

//kill time

}
bw.(dosomething)



button2
{
while bw.inprogress
{
//killtime

}
bw.run(dosomething)
}
...