Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将同步方法包装为异步方法,该异步方法可以是';等待';在上面_C#_Asynchronous_Windows Phone 8 - Fatal编程技术网

C# 将同步方法包装为异步方法,该异步方法可以是';等待';在上面

C# 将同步方法包装为异步方法,该异步方法可以是';等待';在上面,c#,asynchronous,windows-phone-8,C#,Asynchronous,Windows Phone 8,我有一个同步电话: _context.User.Where((u) => (u.UserID == twitterId && u.Type == UserType.Show)).SingleOrDefault(); 我需要包装成一个异步的,我可以使用wait关键字等待 我怎样才能做到这一点 谢谢。您需要使用任务包装您的同步呼叫。运行方法 var user = await Task.Run(() => _context.User .Whe

我有一个同步电话:

_context.User.Where((u) => (u.UserID == twitterId && u.Type == UserType.Show)).SingleOrDefault();
我需要包装成一个异步的,我可以使用
wait
关键字等待

我怎样才能做到这一点


谢谢。

您需要使用
任务包装您的同步呼叫。运行
方法

var user = await Task.Run(() => 
   _context.User
           .Where(u => u.UserID == twitterId && u.Type == UserType.Show)
           .SingleOrDefault());

请记住,6.0版中的EntityFramework将具有异步接口,因此您不再需要使用此代码。

EF6中添加的QueryableExtensions使这变得轻而易举:

await _context.User.SingleOrDefaultAsync(u => 
    u.UserID == twitterId 
    && u.Type == UserType.Show);
不要忘记在EntityFramework.dll中引用
System.Data.Entity