我的理解是,「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