Я создал службу 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");
- В.1 Есть ли разница между этими двумя подходами?
- Q.2 Рекомендуется ли использовать один из них в определенных условиях? или я могу использовать любой из них в любое время.
- Q.3 Для второго вызова я использую асинхронное ожидание в двух местах (клиент-сервер), есть ли в этом какое-то преимущество?
Пожалуйста, направляйте.