Привет! Я использую WPF с Caliburn Micro, и в классе модели View мне нужно тестовое соединение с базой данных SQL.
Вот метод, который я использую для проверки соединения.
public bool CheckSqlServer(string sqlHost, int sqlPort)
{
try
{
IPHostEntry ipHost = Dns.Resolve(sqlHost);
IPAddress ipAddr = ipHost.AddressList[0];
var tcpCli = new TcpClient();
tcpCli.Connect(ipAddr, sqlPort);
tcpCli.Close();
return true;
}
catch
{
return false;
}
}
И я вызываю этот метод в другой теме
//IP is worng
if (Task<bool>.Factory.StartNew(()=>CheckSqlServer("10.10.10.20",1521)).Result)
{
Insert();
}
Проблема в том, что пользовательский интерфейс WPF все еще зависает. Я не знаю почему, потому что я вызываю этот метод в новом потоке, а не в потоке пользовательского интерфейса.