我正在构建一个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