我知道我在這裏有一個巨大的DERP的時刻,這可能是很容易做的其實 - 我有一個圍繞搜索和閱讀幾篇文章,但我仍然在努力一點點,所以任何反饋或指向有用的資源將不勝感激!BackgroundWorker的使用的SqlConnection
反正我有一類稱爲PopulateDatagridViews
,我有各種功能的其中之一的,被稱爲ExecuteSqlStatement
,這個功能是很簡單的,它初始化一個SQL連接,並返回填充了SQL查詢的結果DataTable
。在同一個類中,我還有各種使用字符串構建器構建SQL語句的函數。 (不太理想,我知道。)
我在我的GUI線程中創建了一個PopulateDatagridViews
對象,並使用它返回DataTables
來設置各種datagrid視圖。例如:
dataGridViewVar.DataSource = populateDgv.GetCustomers();
當然我有一個問題是,從數據庫中讀取的數據越多,時間越長,U.I沒有響應。我想通過PopulateDatagridViews
到檢索數據的過程中轉移到一個獨立的線程或BackgroundWorker
從而防止主GUI線程雖然這是處理鎖住。
我意識到我可以創建一個BackgroundWorker
來執行此操作,並將DoWork
處理函數調用到我的PopulateDatagridViews
中相應的函數中。
我想我可以爲我的PopulateDatagridViews
類中的每個單獨的函數創建一個BackgroundWorker
,但是肯定會有更高效的方法來實現此目的?我非常感謝在這個方向上的正確方向,因爲它正在推動我的彎道!
附加信息:我使用.NET Framework 4.0版本。
哪個.NET版本您使用的? – DHN
我使用.Net –