Evitar a janela (WPF) para congelar ao usar TPL

Estou construindo um WPF que possui um botão que executa uma consulta sql no servidor sql (a consulta pode demorar muito tempo para ser executada). Quero usar o TPL para fazer isso.

Este código: var result = Task.Factory.StartNew (() => {command.ExecuteNonQuery ();});

apresenta esta exceção: ExecuteNonQuery requer uma conexão aberta e disponível. O estado atual da conexão está fechado.

Acho que isso se deve ao fato de a consulta ser executada em um thread diferente e não estar ciente da conexão abert

Tenho duas perguntas: 1. Como faço para que o novo thread saiba dessa conexão aberta? 2. Depois de resolver isso, como faço para que a janela não congele devido a esta consult

Obrigad

questionAnswers(2)

yourAnswerToTheQuestion