static void Main(string[] args) { int a = 5; int b = 3; Primjer primjer = new Primjer(); primjer.A = a; primjer.B = b; Task <int> t1 = Task.Factory.StartNew(() => Zbroji(primjer)); Thread.Sleep(100); primjer.A = primjer.A + 1; Console.WriteLine(t1.Result); // Pogledajmo jednu čestu pogrešku koja nastaje korištenjem ovog pakiranja uz pomoć funkcija for (int i = 0; i < 10; i++) { Task t = Task.Factory.StartNew(() => Zbroji(i)); } Console.WriteLine("Malo drugačije"); for (int i = 0; i < 10; i++) { Task t = Task.Factory.StartNew(() => Console.WriteLine(i)); } Console.ReadLine(); }
private static int Zbroji(Primjer primjer) { Console.WriteLine("Primljeno: " + primjer.A + " + " + primjer.B); PosaoKojiDugoTraje(); Console.WriteLine("Zbraja se: " + primjer.A + " + " + primjer.B); return(primjer.A + primjer.B); }