摘要:Form 第一次開啟很慢的處理方式
如果一個Form 上面有許多物件的話, 當這個畫面第一次被程式叫起來的時候, 要花很多時間 , 如果可以再背景先偷跑過一次, 再調用的時候就不會有這個很慢的問題
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 預先載入的程序
class work
{
[STAThread]
public static void DoMoreWork()
{
Form2 f = new Form2();
f.Size = new Size(-1, -1);
f.FormBorderStyle = FormBorderStyle.None;
f.Visible = false;
f.Show();
f.Close();
}
}
// 透過這種方式把Form2 先呼叫一次
private void simpleButton1_Click(object sender, EventArgs e)
{
Thread oth = new Thread(new ThreadStart(work.DoMoreWork));
oth.Start();
}
private void simpleButton2_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();
}
}
}
實作上如果將資料讀取和畫面產生用不同的THREAD 處理的話, 可以更快的產生畫面, 但是作法需要搭配 Thread 傳參數和回呼, 不然Binding Data的時候會遇到跨Thread 不能作業的問題
http://www.dotblogs.com.tw/fang1004tw/archive/2012/01/31/67111.aspx