【发布时间】:2009-04-21 04:39:28
【问题描述】:
在我的应用程序中,我想暂停一个按钮事件一段时间,以便我可以触发另一个事件,之后第一个按钮事件将恢复。在 c# 中,我不知道如何使用线程异步执行它。请帮忙。提前谢谢..
【问题讨论】:
标签: c# multithreading events suspend
在我的应用程序中,我想暂停一个按钮事件一段时间,以便我可以触发另一个事件,之后第一个按钮事件将恢复。在 c# 中,我不知道如何使用线程异步执行它。请帮忙。提前谢谢..
【问题讨论】:
标签: c# multithreading events suspend
如果您想触发第二个事件并等待它完成后再继续,那么为什么不从第一个事件处理程序中同步触发它呢?那会简单得多。
如果您希望一个按钮触发另一个按钮的事件处理程序中的代码,我建议您将其移出到一个单独的函数中,然后调用它。换句话说,这样做:
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 事件。
【讨论】:
这听起来像是您的应用程序中的一个设计问题,而您正在从错误的角度解决它。
【讨论】:
你能用后台工作人员做点什么
background worker bw = new background worker
button1
while bw.inprogress
{
//kill time
}
bw.(dosomething)
button2
{
while bw.inprogress
{
//killtime
}
bw.run(dosomething)
}
【讨论】: