Я, должно быть, что-то упускаю,
var t2 = new Task<bool>(() =>
{
return UserName == "Admin";
});
bool x = await t2;
bool x = await t2;
никогда не завершается, x
ничего не получает (хотя я убедился, что UserName равно "Admin"), не знаю точно, что происходит, пожалуйста, кто-нибудь может объяснить меня .
2 ответа
Вы не приступили к задаче. await
будет ждать завершения, но никогда не завершится, если не начнется.
Возможно, вам нужен Task.Run
, который создает и начинает задачу? (Я предполагаю, что на самом деле ваша задача делает что-то более полезное ...)
Нужно запускать задачу, но лучше использовать фабрику задач
Task.Factory.StartNew(() =>
{
return UserName == "Admin";
});
bool x = await t2;
Или используйте Task.Run ()
Task.Run против Factory.StartNew
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.
Task.Run
в первую очередь :)Task.Run
blogs.msdn.com/b/pfxteam/archive/2011/10/24/10229468.aspx