我正在構建一個WPF,它具有在sql server中執行sql查詢的按鈕(查詢可能需要很長時間才能運行)。 我想使用TPL來做到這一點。在使用TPL時避免窗口(WPF)凍結
此代碼: var result = Task.Factory.StartNew(()=> {command.ExecuteNonQuery();});
給出了這個例外: ExecuteNonQuery需要一個開放且可用的Connection。連接的當前狀態已關閉。
我想這是由於查詢在不同的線程上運行並且不知道打開的連接。
我有2個問題: 1.如何讓新線程知道這個打開的連接? 2.解決此問題後,如何讓窗口不因該查詢而凍結。
感謝
感謝,何談第二個問題? – 2011-06-02 06:52:32
增加了更多的細節來回答。 – 2011-06-02 14:32:43