2012-02-22 14 views
6

क्या फ़ंक्शन कॉल करने के लिए इनमें कोई कार्यात्मक अंतर है।क्लोजर और कार्य

Method1:

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(); 
} 

उत्तर

9

पहले एक गुजरता कार्य करने के लिए obj चर। दूसरा एक obj का मान पास करता है।

अंतर देखने के लिए कार्य बनाने के बाद ओबीजे को कुछ और असाइन करें।

public static void PrintMe(object obj) 
{ 
    Task task = new Task(() => 
    { 
     Console.WriteLine(obj.ToString()); 
    }); 
    obj = "Surprise";   
    task.Start(); 
} 
संबंधित मुद्दे