【发布时间】:2011-09-20 15:25:36
【问题描述】:
您好,我将 WPF 与 Caliburn Micro 一起使用,在视图模型类中,我需要测试与 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的UI仍然冻结我不知道为什么,因为我在新线程中而不是在UI线程中调用了这个方法。
【问题讨论】:
标签: wpf multithreading caliburn.micro freeze