Вы разрабатываете приложение, использующее асинхронную модель работы. Для запуска произвольного метода SomeMethod вы создали делегат SomeDelegate private delegate string SomeDelegate(/*Некоторые параметры*/);private string SomeMethod(/*Некоторые параметры*/){ //Код для работы метода}
Выберите способ завершения работы Callback метода SomeMethod:
(Отметьте один правильный вариант ответа.)
Варианты ответа
private void MethodCallback _Event (object sender, System.EventArgs e){ SomeDelegate sd = new SomeDelegate(); sd.Method.SomeMethod(); AsyncCallback cb = new AsyncCallback(CallbackMethod); sd.BeginInvoke(/*Тип завершения*/, cb, sd);}private void CallbackMethod(IAsyncResult ar){SomeDelegate sd = (SomeDelegate)ar.AsyncState; /*Результат работы метода*/ = sd.EndInvoke(ar); }
private void MethodCallback _Event (object sender, System.EventArgs e){ SomeDelegate sd = new SomeDelegate(); sd.Method.SomeMethod(); AsyncCallback cb = new AsyncCallback(SomeMethod); sd.BeginInvoke(/*Тип завершения*/, cb, sd);}private void CallbackMethod(IAsyncResult ar){SomeDelegate sd = (SomeDelegate)ar.AsyncState; /*Результат работы метода*/ = sd.EndInvoke(ar); }
private void MethodCallback _Event (object sender, System.EventArgs e){ SomeDelegate sd = new SomeDelegate(); sd.Method.SomeMethod(); AsyncCallback cb = new AsyncCallback(CallbackMethod); sd.BeginInvoke(/*Тип завершения*/, cb, sd);}private void CallbackMethod(IAsyncResult ar){SomeDelegate sd = (SomeDelegate)ar.AsyncState; /*Результат работы метода*/ = sd.EndInvoke(ar); }
private void MethodCallback _Event (object sender, System.EventArgs e){ SomeDelegate sd = new SomeDelegate(); sd.Method.SomeMethod(); AsyncCallback cb = new AsyncCallback(SomeMethod); sd.BeginInvoke(/*Тип завершения*/, cb, sd);}private void CallbackMethod(IAsyncResult ar){SomeDelegate sd = (SomeMethod)ar.AsyncState; /*Результат работы метода*/ = sd.EndInvoke(ar); }
private void MethodCallback _Event (object sender, System.EventArgs e){ SomeDelegate sd = new SomeDelegate (SomeMethod); AsyncCallback cb = new AsyncCallback(CallbackMethod); sd.BeginInvoke(/*Тип завершения*/, cb, sd);}private void CallbackMethod(IAsyncResult ar){SomeDelegate sd = (SomeDelegate)ar.AsyncState; /*Результат работы метода*/ = sd.EndInvoke(ar); }(Верный ответ)