我有WPF程序,我试图在那里使用EF Core和SQLite,我发现了奇怪的行为.即使我调用ToArrayAsync()或SaveChangesAsync()之类的异步方法,它也会返回已完成的任务.所以这意味着操作实际上是同步完成的.
似乎EF或SQLite连接中应该有一些控制同步/异步执行的标志,但我没有找到它.
我用这个代码进行测试:
using (var context = new TestDbContext())
{
//I have about 10000 records here.
var task = context.Users.ToListAsync();
if (task.IsCompleted && task.Result != null)
{
// It is always comes here.
}
await task;
}
Run Code Online (Sandbox Code Playgroud)