C# 选择TabPage时进行工作,不会导致绘制延迟/延迟

C# 选择TabPage时进行工作,不会导致绘制延迟/延迟,c#,.net,winforms,C#,.net,Winforms,当在给定的TabControl中选择某个TabPage时,我想做一些简短的工作(

当在给定的TabControl中选择某个TabPage时,我想做一些简短的工作(<300ms)。目前,我在选择TabPage时执行worker方法,但TabPage在工作完成之前不会绘制,因此TabPage在工作方法完成和TabPage正确绘制之前会有一段时间看起来很奇怪/混乱。我知道这是因为我在绘制TabPage的同一线程中工作。然而,我正在寻找一种简单的方法来防止这种“丑陋”的行为,而不需要在单独的线程中进行工作。在这种情况下使用一个单独的线程真的感觉太过分了。我更愿意在执行worker方法之前,通过某种方式允许TabPage完成绘制来解决这种情况。有什么想法吗

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (tabControl1.SelectedTab == tabControl1.TabPages["myTabPage"])
    {                
        doWorkFor300ms();                
    }
}

如果您希望在执行工作之前强制刷新,而不使用单独的线程…那么:

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (tabControl1.SelectedTab == tabControl1.TabPages["myTabPage"])
    {                
        this.Refresh();
        Application.DoEvents();
        doWorkFor300ms();                
    }
}
很好用!正是我想要的。非常感谢你。