Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var currentThread = Thread.CurrentThread;

            Console.WriteLine($"Поток {currentThread.ManagedThreadId} работает...");



            //first step: Get Problem with thread
            //var result = Sum(10, 15);

            //second step: trying to use delegate
            //SumDelegate sumDelegate = Sum;
            //var result = sumDelegate.Invoke(10, 15);

            //third step: async call method from delegate
            //SumDelegate sumDelegate = Sum;
            //var asyncResult = sumDelegate.BeginInvoke(10, 15, null, null);
            //while (!asyncResult.IsCompleted)
            //{
            //    Console.WriteLine("Дожидаемся ответа");
            //    Thread.Sleep(500);
            //}
            //var result = sumDelegate.EndInvoke(asyncResult);

            //fourth step: awareness of the inevitable. Function call back.
            SumDelegate sumDelegate = Sum;

            sumDelegate.BeginInvoke(10, 15, SumCallback, "Результат длительной операции сумма");

            Console.WriteLine($"Поток {currentThread.ManagedThreadId} заканчивает работу");
            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            AsyncCallback callback = new AsyncCallback(MyCallback);
            int           state    = 1000;
            SumDelegate   d        = new SumDelegate(Add);

            d.BeginInvoke(100, 200, callback, state);
            Console.WriteLine("Press any key to exit");
            Console.ReadLine();
        }
  public static void Main(){
		SumDelegate sumDelegate1 = new SumDelegate(Sum);
		SumDelegate sumDelegate2 = new SumDelegate(Sum);
		IAsyncResult result1 = sumDelegate1.BeginInvoke(1, 2, new AsyncCallback(WrapUp), sumDelegate1);
		IAsyncResult result2 = sumDelegate2.BeginInvoke(3, 4, new AsyncCallback(WrapUp), sumDelegate2);
		while(!(result1.IsCompleted && result2.IsCompleted)){
			Thread.Sleep(10);
		}
		Console.WriteLine("\nMain thread exiting now...bye!");
  } // end Main() method
Ejemplo n.º 4
0
	public static void Main(){
		SumDelegate sumDelegate1 = new SumDelegate(Sum);
		SumDelegate sumDelegate2 = new SumDelegate(Sum);
		IAsyncResult result1 = sumDelegate1.BeginInvoke(1, 2, null, null);
		IAsyncResult result2 = sumDelegate2.BeginInvoke(3, 4, null, null);
		while(!(result1.IsCompleted && result2.IsCompleted)){
			Thread.Sleep(100);
		}
		int sum1 = sumDelegate1.EndInvoke(result1);
		int sum2 = sumDelegate2.EndInvoke(result2);
		Console.WriteLine("The result of the first async method call is: {0}", sum1);
		Console.WriteLine("The result of the second async method call is: {0}", sum2);
		Console.WriteLine("\nMain thread exiting now...bye!");
	} // end Main() method
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            Console.WriteLine("запуск приилож");
            int mainThredId = Thread.CurrentThread.ManagedThreadId;

            Console.WriteLine("Поток-- {0}...", mainThredId);

            SumDelegate sumDelegate = new SumDelegate(Sum);

            // sumDelegate.Invoke(2.3, 5.6);
            //IAsyncResult  result= sumDelegate.BeginInvoke(2.3, 5.6, null, null);

            IAsyncResult result = sumDelegate.BeginInvoke(2.3, 5.6,
                                                          new AsyncCallback((incomingResult) =>
                                                                            Console.WriteLine(sumDelegate.EndInvoke(incomingResult))), null);

            Console.WriteLine("Завершение работы");
            Console.ReadLine();
        }