“等待SaveChangesAsync()”和“SaveChanges()”之间有什么区别吗?他们似乎做同样的事情

时间:2017-02-14 18:46:24

标签: linq linq-to-sql

我的理解是

await myContext.SaveChangesAsync();

将保存更改,但不允许线程以与

相同的方式继续
myContext.SaveChanges();

行为。

这两者有什么区别吗?

1 个答案:

答案 0 :(得分:2)

  

允许线程继续

这是你的误解。

简单地说,像SaveChanges这样的同步方法会阻塞调用线程,直到方法完成。

SaveChangesAsync等异步方法(与await一起使用时)不会阻塞调用线程。 await将"暂停"方法,但它不会阻塞线程。

您可以在我的async intro博文和There Is No Thread上的帖子中找到有关其工作原理的详情。