使用DevArt的ToListAsync dotConnect似乎是同步执行的?

时间:2015-07-30 01:22:36

标签: async-await entity-framework-6 devart

我的代码使用devArt的dotConnect连接到Oracle数据库。它基本上是这样的:

using (var context = new MyContext(myConnectionString)
{
    var data = (some lync query).ToListAsync();
    var data2 = (some lync query).ToListAsync();

    etc etc....

    await Task.WhenAll(new Task[] {data, data2....});
}

基本上我异步执行6或7个lync查询并等待它们全部结束然后继续。但是,当我单步执行代码时,我看到的是ToListAsync似乎同步运行。执行不会移动到下一行一两秒(这些是大查询)。如果我只是将一个断点放在Task.Whenall上,VS在等到该断点之前等待10秒左右,并且所有任务都完成了。另外,在研究这个时我发现DBContext不是线程安全的,所以在同一个上下文中执行mutliple异步调用应该抛出异常。

那么这里发生了什么?有没有人在devArt库中看到过这个?他们自己的支持论坛没有帮助。

1 个答案:

答案 0 :(得分:0)

如果其他人看到这个或有相同的问题,我从DevArt确认他们不支持异步并且Async IQueryable扩展方法同步执行。

http://forums.devart.com/viewtopic.php?f=30&t=32197