using System; using System.IO; using System.Linq; using System.Threading.Tasks; class Program { static void Main() { // Return a value type with a lambda expression Task task1 = Task.Factory.StartNew ( () => 1 ); int i = task1.Result; // Return a named reference type with a multi-line statement lambda. Task task2 = Task.Factory.StartNew ( () => { string s = ".NET"; double d = 4.0; return new Test { Name = s, Number = d }; } ); Test test = task2.Result; // Return an array produced by a PLINQ query Task task3 = Task.Factory.StartNew ( () => { string path = @"C:\users\public\pictures\"; string[] files = Directory.GetFiles(path); var result = (from file in files.AsParallel() let info = new FileInfo(file) where info.Extension == ".jpg" select file).ToArray(); return result; }); foreach (var name in task3.Result) Console.WriteLine(name); } class Test { public string Name { get; set; } public double Number { get; set; } } }