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.