阅读量:3
在WinForms中,可以使用Control类的Invoke或BeginInvoke方法来实现异步更新界面。
- 使用Invoke方法:
private void UpdateUI() { if (InvokeRequired) { Invoke(new MethodInvoker(UpdateUI)); return; } // 在这里更新界面 } private void Button_Click(object sender, EventArgs e) { // 启动一个新的线程来执行耗时操作 Task.Run(() => { // 执行耗时操作 // 更新界面 UpdateUI(); }); }
- 使用BeginInvoke方法:
private void UpdateUI() { // 在这里更新界面 } private void Button_Click(object sender, EventArgs e) { // 启动一个新的线程来执行耗时操作 Task.Run(() => { // 执行耗时操作 // 更新界面 BeginInvoke(new MethodInvoker(UpdateUI)); }); }
在以上代码中,UpdateUI方法用于更新界面。在Button_Click事件处理程序中,我们使用Task.Run方法来启动一个新的线程来执行耗时操作。在耗时操作完成后,通过调用Control类的Invoke或BeginInvoke方法来更新界面,确保更新操作在UI线程上执行。