在WinForms中,可以使用Control類的Invoke或BeginInvoke方法來實現異步更新界面。
private void UpdateUI()
{
if (InvokeRequired)
{
Invoke(new MethodInvoker(UpdateUI));
return;
}
// 在這里更新界面
}
private void Button_Click(object sender, EventArgs e)
{
// 啟動一個新的線程來執行耗時操作
Task.Run(() =>
{
// 執行耗時操作
// 更新界面
UpdateUI();
});
}
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線程上執行。