I'm trying to create tasks in a loop and each task uses different values as method parameter. However, I found all tasks are having the same parameter
            for(int i = 0; i < threads; i++)
        {
            tasks.Add(new Task( () => DownloadFunc(i) ));
        }
        WATCH.Reset();
        WATCH.Start();
        Parallel.ForEach(tasks, t => t.Start());
 
    