8
我有一個同步調用:裹同步方法成一個異步一個可「等待」時
_context.User.Where((u) => (u.UserID == twitterId && u.Type == UserType.Show)).SingleOrDefault();
,我需要包裝成一個異步一個我可以等待使用await
關鍵字。
我該如何做到這一點?
謝謝。
我有一個同步調用:裹同步方法成一個異步一個可「等待」時
_context.User.Where((u) => (u.UserID == twitterId && u.Type == UserType.Show)).SingleOrDefault();
,我需要包裝成一個異步一個我可以等待使用await
關鍵字。
我該如何做到這一點?
謝謝。
您需要使用Task.Run
方法來包裝您的同步呼叫。
var user = await Task.Run(() =>
_context.User
.Where(u => u.UserID == twitterId && u.Type == UserType.Show)
.SingleOrDefault());
請記住,版本6.0中的EntityFramework將具有異步接口,因此您將不再需要使用此代碼。
QueryableExtensions,加入EF6,使之成爲一個微風:
await _context.User.SingleOrDefaultAsync(u =>
u.UserID == twitterId
&& u.Type == UserType.Show);
不要忘記在EntityFramework.dll引用System.Data.Entity
[相關博客文章(HTTP://blogs.msdn的.com/b/pfxteam /存檔/ 2012/04/24/10287244.aspx)。 –