private async Task CheckServer()
{
SqlConnection mySqlConnection = new SqlConnection();
mySqlConnection.ConnectionString = UserInfo.Session.ConnectString1;
try
{
await Task.Run(() => mySqlConnection.Open());
mySqlConnection.Close();
UserInfo.Session.PublicIP = await UtilConv.GetPublicIP();
}
catch (Exception)
{
return "远程服务器连接失败,请检查远程服务器设置";
}
return "1";
}
public async void CheckDB()
{
var result= await CheckServer();
}
http://stackoverflow.com/questions/10134310/how-to-cancel-a-task-in-await
看第二个回答,调用者不再等待(无论task是否做完),直接返回
除了强行终止线程没有办法,但是既然是异步的,不存在阻塞,一般没有必要终止。调用判断canceltoken并且直接回馈给用户,已经超时的任务让它自然结束好了。
@caozhy 英语不太好,可以帮忙解释一下不