Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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/8/vim/5.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_Task Parallel Library - Fatal编程技术网

C# 同步实现异步接口?

C# 同步实现异步接口?,c#,asynchronous,task-parallel-library,C#,Asynchronous,Task Parallel Library,我必须实现一种C#接口方法,如: Task<Foo> ExecuteAsync(); 任务执行同步(); 但是这个特定的实现实际上是同步的。我该怎么做呢?如果您使用的是.Net 4.0,则需要使用TaskCompletionSource,设置其结果,然后返回任务 在.Net 4.5/C#5.0上,您有两种选择:使用Task.FromResult()或将您的方法转换为async方法,而不使用任何wait。第二种方法效率较低,并且会生成警告,因此我选择第一种方法

我必须实现一种C#接口方法,如:

Task<Foo> ExecuteAsync();
任务执行同步();

但是这个特定的实现实际上是同步的。我该怎么做呢?

如果您使用的是.Net 4.0,则需要使用
TaskCompletionSource
,设置其结果,然后返回
任务

在.Net 4.5/C#5.0上,您有两种选择:使用
Task.FromResult()
或将您的方法转换为
async
方法,而不使用任何
wait
。第二种方法效率较低,并且会生成警告,因此我选择第一种方法