让我们假设你有以下的事情做形式负载:
void LoadStartupItemsAndDataBlahBlah(object sender, DoWorkEventArgs e)
{
int s = 0;
for (int i = 0; i < 1000; i++)
for (int j = 0; j < 1000; j++)
for (int k = 0; k < 1000; k++)
s++;
MessageBox.Show(s.ToString());
}
,如果你调用形式负载这种方法
private void Form5_Load(object sender, EventArgs e)
{
Stopwatch t = new Stopwatch();
t.Start();
LoadStartupItemsAndDataBlahBlah(null,null);
t.Stop();
this.Text = string.Format("[{0}] mili-seconds", t.ElapsedMilliseconds);
}
表单约5秒钟后运行(5000毫秒)以及消息框1000000000
但如果您在后台运行该方法
private void Form5_Load(object sender, EventArgs e)
{
BackgroundWorker bg = new BackgroundWorker();
bg.DoWork += new DoWorkEventHandler(LoadStartupItemsAndDataBlahBlah);
Stopwatch t = new Stopwatch();
t.Start();
bg.RunWorkerAsync();
t.Stop();
this.Text = string.Format("[{0}] mili-seconds", t.ElapsedMilliseconds);
}
您的形式加载速度非常快,大约0-1毫秒,在5秒内消息框将到达并显示它的价值1000000000
你打开这个表格每个应用程序运行一次?或者你想多次打开它? –