Может кто-нибудь объяснить, почему приведенный ниже метод общедоступной асинхронной задачи DoStuff () все еще может работать, ничего не возвращая? Он не говорит о недействительности, поэтому я предположил, что возвращаемый тип должен быть Задача.
Когда я удаляю ключевые слова async и await из метода DoStuff (), компилятор выдает мне "не все пути кода возвращаются значение " ошибка. Однако, если я добавлю ключевые слова async и await, похоже, что тип возвращаемого значения не понадобится, несмотря на отсутствие ключевого слова void в сигнатуре метода. Я не понимаю!
Что такое задача? Microsoft очень плохо это объясняет. Спасибо.
namespace Async_and_Await_Example
{
class Program
{
static void Main(string[] args)
{
AsyncAwaitDemo demo = new AsyncAwaitDemo();
demo.DoStuff();
for (int i = 0; i < 100; i++)
{
Console.WriteLine("Working on the Main Thread...................");
}
}
}
public class AsyncAwaitDemo
{
public async Task DoStuff()
{
await Task.Run(() =>
{
CountToFifty();
});
}
private static async Task<string> CountToFifty()
{
int counter;
for (counter = 0; counter < 51; counter++)
{
Console.WriteLine("BG thread: " + counter);
}
return "Counter = " + counter;
}
}
}