C# HttpWebRequest.GetResponse blocks when called from a different Thread

i just stuck with a problem when i tried to call several web requests in a Task. Here is my code

private static void Main(string[] args)
    {
        var locker = new object();
        var bag = new ConcurrentBag<string>();
        var list = new List<Task>();

        for (var i = 0; i < 5000; i++)
        {
            var task = Task.Run(() =>
            {
                lock (locker)
                {
                    using (var client = new WebClient())
                    {
                        Console.WriteLine("get");
                        var s = client.DownloadString("http://www.google.de");
                        bag.Add(s);
                        Console.WriteLine("got");
                    }
                }
            });
            list.Add(task);
        }

        Task.WaitAll(list.ToArray());
    }

It seems that the very first request blocks and never returns. Since the lock is introduced, only one request is send at a time. So no parellel requests are send.

Does anybody has an idea how to avoid that? The Thread blocks here:CallStack