如何在c#中执行进程时禁用其他按钮?

时间:2013-02-19 11:43:55

标签: c# backgroundworker

我使用后台工作程序运行一个耗时的过程,并且在上述过程正在执行时我已禁用所有其他按钮。但是当我尝试禁用其他按钮时,我得到跨线程异常无效错误。我怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

在启动后台工作程序之前禁用您的按钮。

DisableButton(); // runs on UI thread
backgroundWorker.RunWorkerAsync();

然后使用RunWorkerCompleted事件处理程序启用按钮:

void backgroundWorker_RunWorkerCompleted(object s, RunWorkerCompletedEventArgs e)
{
    EnableButtons(); // runs on UI thread
}