2014-09-01 2 views
-2

При попытке использования некоторых методов async возникает следующая ошибка. Я следую этому пример: Microsoft Async ExampleОшибка с помощью метода Async/Await

«ждет» оператор может быть использован только в рамках метода асинхронной

МЕТОД «жду» в IS асинхронными, и я думаю, что это в значительной степени так же, как пример Microsoft.

Что я здесь делаю неправильно?

Кнопка Нажмите

private void btn_Async_Click(object sender, EventArgs e) 
    { 
     GeneralFeatures gf = new GeneralFeatures(); 
     Task<long> getLongRunningData = gf._Async(); 

     long answer = await getLongRunningData ; 
    } 

Async Метод

class GeneralFeatures 
{ 
public async Task<long> _Async() 
    { 
     ///// LONG RUNNING TASK ///////// 
     int count = 0; 
     int j = 1101000; 
     long a = 2; 
     while (count < j) 
     { 
      long b = 2; 
      int prime = 1;// to check if found a prime 
      while (b * b <= a) 
      { 
       if (a % b == 0) 
       { 
        prime = 0; 
        break; 
       } 
       b++; 
      } 
      if (prime > 0) 
       count++; 
      a++; 
     } 
     ///// LONG RUNNING TASK ///////// 

     return a; 
    } 
} 
+2

'private void btn_Async_Click' Скажите мне, где именно вы определяете его как' async'. –

ответ

2

Вы не можете иметь await, если метод подписи не async.

нет async в private void btn_Async_Click(object sender, EventArgs e)

должно быть: private async void btn_Async_Click(object sender, EventArgs e) дать этому попытку, или вызвать метод асинхронной от того.

+0

Действительно. И это соответствует примеру на связанной странице, которая имеет 'private async void startButton_Click (отправитель объекта, RoutedEventArgs e)' в качестве первой сигнатуры метода. – Chris

+1

@ Крис не нужно искать, он явно отсутствовал :) – Noctis

+0

Это не было доказательством того, почему ваш ответ был прав, но как основной момент для ОП, где его код отличался от того, что, по его мнению, он копировал , Как вы говорите, ваш ответ вполне счастливо стоит без внешних ссылок. – Chris

Смежные вопросы