Ostatnio męczę się nad pewnym zagadnieniem. A mianowicie wywoływanie metod oraz delegatów asynchronicznie. Moje pytania: W jaki sposób wywoływać delegaty asynchronicznie? I jakimi innymi sposobami można wywoływać metody lub fragmenty kodu w sposób asynchroniczny.

Żeby nie było że na gotowe tylko idę, to i am trying :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delegaty
{


    class Program
    {


        public delegate int Delegacik(int x, int y);
        private static bool isDone = false;




        static void Main(string[] args)
        {

            Delegacik nowy = new Delegacik(Add);
            

            IAsyncResult assyn = nowy.BeginInvoke(1,2,new AsyncCallback(Loop),"Thanks for all");


            nowy(4,5);
            Console.ReadKey();

        }

        static int Add(int x, int y)
        {
            Console.WriteLine("Add funkcja");
            return x + y;
        }

        static void Loop(IAsyncResult assyn)
        {
            Console.WriteLine("Loop Funkcja");
            for(int i=0;i<1000;i++);
            Console.WriteLine((string)assyn.AsyncState);
            isDone = true;

           
        }

    }
}

 

I tutaj mam pytanie: jeśli delegatowi przypisuje pewną funkcję i zamiast wywołać delegata użyje metode BeginInvoke to wywołuję delegat czy metodę asynchronicznie? Ja już się pogubiłem w tym.