你的方法可能時間太長。而在控制元件事件裡的程式是與介面執行緒同一個,一但時間長介面就死了。
辦法是:把你的工作方法放在一個單獨的方法裡,然後:
1. 用Threading.Thread類:
System.Threading.Thread th = new Thread(new ThreadStart(this.DoWirk));
th.Start();
2. ThreadPool:
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(this.DoWork), null)
第兩個引數是傳給執行緒用的引數。
2. 用backgroupworker控制元件. 功能多一些。
private void backgroundWorker1_DoWork(object sender,
DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
e.Result = this.DoWork();
}
你的方法可能時間太長。而在控制元件事件裡的程式是與介面執行緒同一個,一但時間長介面就死了。
辦法是:把你的工作方法放在一個單獨的方法裡,然後:
1. 用Threading.Thread類:
System.Threading.Thread th = new Thread(new ThreadStart(this.DoWirk));
th.Start();
2. ThreadPool:
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(this.DoWork), null)
第兩個引數是傳給執行緒用的引數。
2. 用backgroupworker控制元件. 功能多一些。
private void backgroundWorker1_DoWork(object sender,
DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
e.Result = this.DoWork();
}