异步

1、如何使用异步方法

在同步方法后面加上Async就能使用异步方法了

var task1=db.Queryable<Order>().FirstAsync();
var task2 = db.Queryable<Order>().Where(it=>it.Id==1).ToListAsync();
 
//分页需要特别注意用法
RefAsync<int> total = 0;
Db.Queryable<Order>().ToPageListAsync(1, 2, total);


异步的注意点和用法

//正确用法 每个异步方法都用await进行串起来
public  async Task<List<Order>> Test()
{
    var db = GetInstance();
 
    await GetAsync();
 
    await db.Queryable<OrderItem>().ToListAsync();
 
    return await db.Queryable<Order>().ToListAsync();
}
 
//错误用法,异步中禁止用sleep
 
Thread.Sleep(1)
 
//正确用法
 
 Task.Delay(1)
 
//错误用法
 Task.WhenAll


2、异步Canceltoken

db.Ado.CancellationToken = token;
List<Order> list1 =await db.Queryable<Order>().ToListAsync();
List<Order> list2 =await db.Queryable<Order>().ToListAsync();
db.Ado.RemoveCancellationToken();