我已经创建了一个 WCF 服务,并且它的操作合同和实现如下所示:
[OperationContract]
Task<string> GetName(string name);
public async Task<string> GetName(string name)
{
await Task.Delay(5000);
var task1 = Task<string>.Factory.StartNew(() =>
{
return "Your name is : " + name;
});
var result = await task1;
return result;
}
现在我在客户端使用这个服务并创建了客户端。
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
它显示了我的实现的 2 种方法:GetName 和 GetNameAsync
我可以使用以下两种方式访问该服务。
var result_GetName = await Task.Factory.StartNew(() => client.GetName("My Input"));
var result_GetNameAsync = await client.GetNameAsync("My Input");
- Q.1 这两种方法有什么区别吗?
- Q.2 是否建议在特定条件下使用其中一种?或者我可以随时使用其中任何一个。
- Q.3 对于第二次调用,我在两个地方(客户端-服务器)使用 async-await,它有什么优势吗?
请指导。