2013-05-30 2 views
2

Я выступаю вПериодическое Агент - Жди для searchasync по назначениям

appts.SearchAsync 

на

var appts = new Appointments(); 

В "Периодическая Агент". Проблема в том, что в периодическом агенте. Searchasync и это вложенные функции никогда не закончить до

NotifyComplete(); 
     } 

Не могли бы вы помочь мне о том, как ждать, пока все вызовы, которые предавались здесь:

static void Appointments_SearchCompleted(object sender, AppointmentsSearchEventArgs e) 
     { 
      try 
      { 
       UpdatePrimaryTile(e.Results 
       .Where(a => a.Subject != null) 
       .OrderBy(a => a.StartTime) 
       .ToList()); 
      } 
      catch (System.Exception) 
      { 

      } 
     } 

public static void UpdatePrimaryTile(List<Appointment> calendarItems) 
     { 
........... 
.......... 
} 

Перед «NotifyComplete» вызывается ,

Спасибо!

Якуб

+0

Хотя это большой вопрос, вопросы развития следует задавать на переполнение стека. http://windowsphone.stackexchange.com/faq – caschw

+0

@caschw Правильно. Я перенесу ваш вопрос. –

ответ

1

Вы можете использовать ждать ключевое слово, чтобы ждать асинхронной операции завершения.

await appts.SearchAsync 

Другой вариант - иметь петлю, которая спит до завершения асинхронного вызова.

appts.SearchAsync 
while (true) 
{ 
    if (searchCompleted) 
    { 
     break; 
    } 
    else 
    { 
     Thread.Sleep(100); 
    } 
} 

затем в обработчике события ...

void Appointments_SearchCompleted(object sender, AppointmentsSearchEventArgs e) 
{ 
    searchCompleted = true; 
    // Other logic 
} 
+0

Спасибо, попробуем это. –

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