如何在c#中激活任务?

如何在c#中激活任务?,c#,asynchronous,task,task-parallel-library,C#,Asynchronous,Task,Task Parallel Library,我正在尝试使用windows 8中的wcf: 使用WCF服务生成的方法的代码: public System.Threading.Tasks.Task<Maquette_MyAirport_Win8.FlightService.CitiesResponse> GetAllCitiesAsync(Maquette_MyAirport_Win8.FlightService.BaseRequest request) { return base.Channel.GetAllC

我正在尝试使用windows 8中的wcf: 使用WCF服务生成的方法的代码:

public System.Threading.Tasks.Task<Maquette_MyAirport_Win8.FlightService.CitiesResponse> 
    GetAllCitiesAsync(Maquette_MyAirport_Win8.FlightService.BaseRequest request)
{
    return base.Channel.GetAllCitiesAsync(request);
}
public System.Threading.Tasks.Task
GetAllCitiesAsync(Maquette_MyAirport_Win8.FlightService.BaseRequest请求)
{
返回base.Channel.GetAllCitiesAsync(请求);
}

publictestproxy()
{
_客户端=新的FlightInfoServiceClient(Maquette_MyAirport_Win8.FlightService.FlightInfoServiceClient.EndpointConfiguration.wsHttpBindingConfiguration);
BaseRequest req=新的BaseRequest();
System.Threading.Tasks.Task CitiesResponse=\u client.GetAllCitiesAsync(new BaseRequest());
CitiesResponse.ContinueWith(task=>citiesL=task.Result.Cities.FirstOrDefault(););
}
任务citiesResponse的状态为“WaitingForACtivation”和Result=“尚未计算”


如何激活任务以及如何获得结果???

您不需要添加异步并等待获得结果类型而不是任务类型吗

应该是这样的:

var result = await _client.GetAllCitiesAsync( new BaseRequest());

在方法中,您应该添加async

难道不需要添加async并等待获得结果类型而不是任务类型吗

应该是这样的:

var result = await _client.GetAllCitiesAsync( new BaseRequest());

在方法中,您应该添加async

,我认为您生成的代码有问题。正常情况下,任务应该在返回后立即运行-也许您可以尝试在调试程序中逐步检查生成的代码,以找出问题所在。您也可以查看一下……任务的状态何时与您描述的方式相同?是在
testproxy()内部还是在继续中?如果它在
testproxy()
中,那么这可能是正确的行为,您不必做任何事情来激活
任务。正常情况下,任务应该在返回后立即运行-也许您可以尝试在调试程序中逐步检查生成的代码,以找出问题所在。您也可以查看一下……任务的状态何时与您描述的方式相同?是在
testproxy()内部还是在继续中?如果它在
testproxy()
内部,那么这可能是正确的行为,您不必做任何事情来激活
任务
。请参阅此处的示例:
任务早于
异步
-
等待
,您不必使用它来获得
任务的结果,还有其他的方法。我知道还有其他的方法来获得任务的结果。我认为这是一个常见的问题,具有.NET4背景的开发人员还不知道正确的方法是使用async-await。但这不是“正确”的方法,它只是其中一种方法。好的。。然后是“另一种方法”。请参见这里的示例:
任务早于
异步
-
等待
,您不必使用它来获得
任务的结果
,还有其他方法。我知道还有其他方法可以获得任务的结果。我认为这是一个常见的问题,具有.NET4背景的开发人员还不知道正确的方法是使用async-await。但这不是“正确”的方法,它只是其中一种方法。好的。。然后是“另一种方法”。