2014-01-31 4 views
1

Я занимаюсь разработкой Silverlight проекта с использованием WCF.I нужно вызвать функцию из WCF после другой функции WCF имеет finished.Here мой код:ждут асинхронной функции C#

Int32 id = Convert.ToInt32(((TextBlock)dataGrid1.Columns[0].GetCellContent(dataGrid1.SelectedItem)).Text.ToString()); 
     Service1Client obj = new Service1Client(); 
     obj.DeletePersonAsync(id); 

     //Wait for delete operation 

     obj.GetPersonListCompleted += new EventHandler<GetPersonListCompletedEventArgs>(ListPeople); 
     obj.GetPersonListAsync(); 

Как я могу это сделать?

+0

Так почему бы вам не использовать 'await obj.DeletePersonAsync (id);'? –

+0

Я пробовал, но не ожидал, что он не задан в проекте silverlight по умолчанию. Мне нужно добавить что-то вроде ссылки? – mekafe

+0

Какую версию .Net вы настраиваете? –

ответ

1

Вызвать функцию GetPersonListAsync в обратном вызове функции obj.DeletePersonAsync (id). Код будет выглядеть следующим образом:

private void somefunction() 
{ 
    Int32 id = Convert.ToInt32(((TextBlock)dataGrid1.Columns[0].GetCellContent(dataGrid1.SelectedItem)).Text.ToString()); 
    Service1Client obj = new Service1Client(); 
    obj.DeletePersonAsyncCompleted += new EventHandler<DeletePersonCompletedEventArgs>(PersonDeleted); 

    obj.DeletePersonAsync(id); 
} 


    private void PersonDeleted(DeletePersonCompletedEventArgs serviceResponse) 
    { 
    //Wait for delete operation 

    obj.GetPersonListCompleted += new EventHandler<GetPersonListCompletedEventArgs>(ListPeople); 
    obj.GetPersonListAsync(); 
    } 
Смежные вопросы