二个线程之间的区别,C#

string ticket_list = "1,2,3,11,12";
        string[] sArray = ticket_list.Split(',');
        if (sArray.Length > 0)
        {

                foreach (var i in sArray)
            {
                task = new Task(() =>
                {

                    Task a = Task.Run(() =>
                    {
                        MyMethod(int.Parse(i));
                    });
                });
            }


            task.Start();
        }


string ticket_list = "1,2,3,11,12";
string[] sArray = ticket_list.Split(',');
if (sArray.Length > 0)
{
task = new Task(() =>
{
foreach (var i in sArray)
{

                    Task a = Task.Run(() =>
                    {
                        MyMethod(int.Parse(i));
                    });

这二个线程有什么区别吗,看结果好像差不多。他们各自有什么优缺点

在C# 4.0上,前者MyMethod(int.Parse(i));每个i都是12
在C# 5.0上,每个i是数组的某个值。