HTTP Performance Test in C#
You're not always using var in what I think of as a good way. We should only use the keyword when it's obvious what type the variable is. Consider this line.


Task&lt;bool&gt;[] tasks = new Task&lt;bool&gt;[sites.Count()];



It's completely obvious what tasks is because you're newing it up right there on that line. There's no reason not to simplify by using var. 

But here, you have the opposite problem. 


var response = client.Execute(request);     



It is not obvious what the return type is, so you shouldn't be using var.