static void Main() { // Выполним асинхронный вызов, создав делегат и вызвав его ComputeTaxesDelegate work = ComputeTaxes; IAsyncResult pendingOp = work.BeginInvoke(2004, null, null); // Выпонить другую полезную работу Thread.Sleep(3000); // Завершить асинхронный вызов Console.WriteLine("Ожидание завершения операции"); decimal result = work.EndInvoke(pendingOp); Console.WriteLine("Сумма налогов: {0}", result); Console.ReadKey(); }
static void Main() { // Let's make the asynchronous call by creating // the delegate and calling it. ComputeTaxesDelegate work = new ComputeTaxesDelegate(EntryPoint.ComputeTaxes); work.BeginInvoke(2004, new AsyncCallback( EntryPoint.TaxesComputed), work); // Do some other useful work. Thread.Sleep(3000); Console.WriteLine("Waiting for operation to complete."); Thread.Sleep(4000); }
static void Main() { // Let's make the asynchronous call by creating // the delegate and calling it. ComputeTaxesDelegate work = new ComputeTaxesDelegate(EntryPoint.ComputeTaxes); IAsyncResult pendingOp = work.BeginInvoke(2004, null, null); // Do some other useful work. Thread.Sleep(3000); // Finish the async call. Console.WriteLine("Waiting for operation to complete."); Decimal result = work.EndInvoke(pendingOp); Console.WriteLine("Taxes owed: {0}", result); }
public static void Main(string[] args) { // Выполним асинхронный вызов, создав делегат и вызвав его. var work = new ComputeTaxesDelegate(ComputeTaxes); work.BeginInvoke(2004, TaxesComputed, work); // Выполнить другую полезную работу Thread.Sleep(3000); // Завершить асинхронный вызов Console.WriteLine("Ожидание завершения операции"); // Sleep используется только для примера! // В действительности необходимо ожидать событие, // чтобы получить результат или что-то подобное Thread.Sleep(4000); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); }