我正在创建一个控制台程序,它可以通过模拟多个客户端来测试对高速缓存的读/写,并且已经编写了以下代码。请帮助我了解:使用C#Async等待负载测试
- 是不是正确的方式来实现多客户端模拟
- 我能做得更多,使之成为真正的负载测试
void Main()
{
List<Task<long>> taskList = new List<Task<long>>();
for (int i = 0; i < 500; i++)
{
taskList.Add(TestAsync());
}
Task.WaitAll(taskList.ToArray());
long averageTime = taskList.Average(t => t.Result);
}
public static async Task<long> TestAsync()
{
// Returns the total time taken using Stop Watch in the same module
return await Task.Factory.StartNew(() => // Call Cache Read/Write);
}
看起来没问题,WCf和其他许多服务主机会阻止来自一个发件人的太多负载,因此即使您从一台计算机上轰炸了您的服务,其他人也可以轻松访问您的服务。 –
可能有些任务可以使用'Factory.StartNew'来预定,并且在大量的同步任务的情况下它们的执行将被延迟。 – cassandrad