我的理解是,“await SaveChangesAsync()”和“SaveChanges()”有什么区别吗?他们似乎做同样的事情
await myContext.SaveChangesAsync();
将保存更改,但不允许线程以同样的方式继续这一
myContext.SaveChanges();
的行为。
这两者有什么区别吗?
我的理解是,“await SaveChangesAsync()”和“SaveChanges()”有什么区别吗?他们似乎做同样的事情
await myContext.SaveChangesAsync();
将保存更改,但不允许线程以同样的方式继续这一
myContext.SaveChanges();
的行为。
这两者有什么区别吗?
允许线程继续
这是你的误解。
简而言之,像SaveChanges
这样的同步方法会阻塞调用线程,直到方法完成。
异步方法如SaveChangesAsync
(与await
一起使用时)不会阻塞调用线程。 await
将“暂停”该方法,但不会阻塞该线程。
你可以在我的async
intro博客文章和我的文章There Is No Thread找到更多关于这是如何工作的信息。
所以基本上,你是说使用“await”会暂停当前的方法,但调用此方法的父线程将继续前进而没有暂停? – user7560542
@ user7560542是的。查看我的异步介绍帖子了解更多信息。 –
[如果异步等待不会创建任何其他线程,那么它如何使应用程序响应?](http://stackoverflow.com/q/37419572) –
[如果async-await不可以重复创建任何额外的线程,然后它如何使应用程序响应?](http://stackoverflow.com/questions/37419572/if-async-await-doesnt-create-any-additional-threads-then-how-does-it -make-appl) – orvi