/// Создаем метод для завершения асинхронного вызова с использованием callback /// <param name="ar"></param> private void CallbackMethod(IAsyncResult ar) { // Приводим к типу AsynchronousMethodDelegate AsynchronousMethodDelegate asyncDeleg = (AsynchronousMethodDelegate)ar.AsyncState; // Получаем результаты асинхронного метода. //lblCallback.Text = asyncDeleg.EndInvoke(ar); TolblCallback(asyncDeleg.EndInvoke(ar)); }
private void btnCallback_Click(object sender, EventArgs e) { AsynchronousMethodDelegate asyncDeleg = new AsynchronousMethodDelegate(AsynchronousMethod); // Создаем экземпляр callback делегата Callback. AsyncCallback callback = new AsyncCallback(CallbackMethod); // Запускаем асинхронно метод AsynchronousMethod. asyncDeleg.BeginInvoke(ActivateType.Callback, callback, asyncDeleg); }
/////////////////////////// Задание 2 /////////////////////////// private void btnEnd_Click(object sender, EventArgs e) { AsynchronousMethodDelegate asyncDeleg = new AsynchronousMethodDelegate(AsynchronousMethod); // Запускаем асинхронно метод AsynchronousMethod. IAsyncResult ar = asyncDeleg.BeginInvoke(ActivateType.End, null, null); // Получаем результаты асинхронного метода. lblEnd.Text = asyncDeleg.EndInvoke(ar); }
private void btnIsComplete_Click(object sender, EventArgs e) { AsynchronousMethodDelegate asyncDeleg = new AsynchronousMethodDelegate(AsynchronousMethod); // Запускаем асинхронно метод AsynchronousMethod. IAsyncResult ar = asyncDeleg.BeginInvoke(ActivateType.IsColplete, null, null); while (!ar.IsCompleted) { lblIsComplete.Text = "Ожидание"; } // Получаем результаты асинхронного метода. lblIsComplete.Text = asyncDeleg.EndInvoke(ar); }