我的問題很簡單,我的SQL查詢需要2分鐘才能完成,我不能讓我的應用程序在嘗試獲取所有數據時被凍結。我嘗試了多線程,但是我一直在遇到一個我很確定你會認識的錯誤。我的代碼就在這個下面。在線程中加載數據
跨線程操作無效:從其創建的線程以外的線程訪問的控件'labelEdit1'。
private void Form_Load(object sender, EventArgs e)
{
startup = new Thread(loadInThread);
startup.Start();
}
private void loadInThread()
{
//getsDataFromSQL() is the method that takes over 2 minutes to do
//it returns a String Array if that is helpful
comboEdit1.Properties.Items.AddRange(getsDataFromSQL());
startup.Abort();
}
如果有更好的方法來做到這一點,那麼請讓我知道,我需要的是爲應用程序不會凍結起來,這些數據取得裝入comboEdit。我也知道SQL語句可以優化,但這不是這個問題的關鍵,所以請不要提示它。
您是否對交叉線程異常做過任何研究?這個問題的第一個相關問題有標題「跨線程操作無效:控制訪問從一個線程以外的線程創建它」... –
http://stackoverflow.com/questions/142003/cross -thread-operation-not-valid-control-accessible-from-a-thread-other-than-the-rq = 1 –
-1缺少研究 –