需求:因项目中出现一个调用和获取数据库中数据 产生时间差异的问题()
参考别人 自己写的一个超出时间跳出的方法
// timeoutMilliseconds 需要等待的时间
//List<Record> 返回的数据类型 (本人是自定义的一种Record类型)
public static List<Record> CallWithTimeout(, int timeoutMilliseconds)
{
Thread thread = null;
List<Record> resulta = new List<Record>();
Func<List<Record>> wrappedFunc = () =>
{
thread = Thread.CurrentThread;
while (!resulta.Any())
{
//resulta = 调用数据库的方法();
}
return resulta;
};
IAsyncResult result = wrappedFunc.BeginInvoke(null, null);
//根据时间筛选跳出整体,返回数据
if (result.AsyncWaitHandle.WaitOne(timeoutMilliseconds))
{
return wrappedFunc.EndInvoke(result); //方法成功执行返回值
}
else
{
thread.Abort();
return new List<Record>(); //方法中止返回值
}
}