2012-02-22 30 views
6

Bunlar arasında işlev çağrıları arasında herhangi bir işlevsel fark var.Kapanış ve Görevler

Yöntem 1:

public static void PrintMe(object obj) 
{ 
    Task task = new Task(() => 
    { 
     Console.WriteLine(obj.ToString()); 
    }); 
    task.Start(); 
} 

Method2:

public static void PrintMe(object obj) 
{ 
    Task task = new Task((object arg) => 
    { 
     Console.WriteLine(arg.ToString()); 
    }, obj); 
    task.Start(); 
} 

cevap

9

ilk göreve obj değişken geçer. İkincisi,'un değerini geçer.

Farkı görmek için görevi oluşturduktan sonra objeye başka bir şey atayın.

public static void PrintMe(object obj) 
{ 
    Task task = new Task(() => 
    { 
     Console.WriteLine(obj.ToString()); 
    }); 
    obj = "Surprise";   
    task.Start(); 
}