жду vs Task.Wait - тупик?
Я не совсем понимаю разницу междуTask.Wait
а такжеawait
.
У меня есть что-то похожее на следующие функции в службе ASP.NET WebAPI:
public class TestController : ApiController
{
public static async Task<string> Foo()
{
await Task.Delay(1).ConfigureAwait(false);
return "";
}
public async static Task<string> Bar()
{
return await Foo();
}
public async static Task<string> Ros()
{
return await Bar();
}
// GET api/test
public IEnumerable<string> Get()
{
Task.WaitAll(Enumerable.Range(0, 10).Select(x => Ros()).ToArray());
return new string[] { "value1", "value2" }; // This will never execute
}
}
гдеGet
будет тупик
Что может вызвать это? Почему это не вызывает проблемы, когда я использую блокирующее ожидание, а неawait Task.Delay
?