From here:async как метод result manager?
“async”
ключевое слово позволяет «дождаться» ключевое слово в этом методе и изменения как результат метода обрабатываются. Это все ключевое слово async делает!
Вторая часть меня заинтересовала, но я не нашел объяснения этому в статье.
Делая небольшой тест (уведомление - не ожидали задача здесь):
static void X()
{
try
{
Y();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
static async void Y() //<---- notice here
{
throw new NotImplementedException();
}
static void Main(string[] args)
{
X();
Console.ReadLine();
}
Это прекратить программы:
Хотя извлекаяasync
из этого:
static async void Y()
{
throw new NotImplementedException();
}
даст:
MSDN ничего не говорит об этом:
Если метод, что модифицирует асинхронное ключевое слово не содержит выражения ОЖИДАНИЯ или оператор, метод выполняется синхронно , А компилятор предупреждения предупреждает вас о любых методах асинхронных, которые не содержат Await, , потому что ситуация может указывать на ошибку
Вопрос
Если да, то еще делает слово async
делает что мой код дает разные результаты?
Я действительно хочу знать, почему это было downvoted :-), но я думаю, я никогда не знаю –
Я не уверен, почему это было проголосовано. Хороший вопрос, на мой взгляд, –
Более новая статья Стивена Клири http://msdn.microsoft.com/en-us/magazine/jj991977.aspx более подробно описывает исключения. –