如何在C#中暂停按钮事件?

时间:2009-04-21 04:39:28

标签: c# multithreading events suspend

在我的应用程序中,我想暂停按钮事件一段时间,以便我可以触发另一个事件,之后第一个按钮事件将恢复。在c#中我不知道如何使用线程异步执行它。请帮忙。提前谢谢..

3 个答案:

答案 0 :(得分:2)

如果要在继续之前触发第二个事件并等待它完成,那么为什么不从第一个事件处理程序中同步同步?那会更简单。

编辑:

如果你想要一个按钮来触发另一个按钮的事件处理程序中的代码,我建议你把它移到一个单独的函数中,然后调用它。换句话说,这样做:

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事件。

答案 1 :(得分:2)

这听起来像是你应用程序中的一个设计问题而你正在从错误的一端解决它。

答案 2 :(得分:0)

你可以用后台工作者做点什么吗

background worker bw = new background worker


button1

while bw.inprogress
{

//kill time

}
bw.(dosomething)



button2
{
while bw.inprogress
{
//killtime

}
bw.run(dosomething)
}