我正在創建一個控制檯程序,它可以通過模擬多個客戶端來測試對高速緩存的讀/寫,並且已經編寫了以下代碼。請幫助我瞭解:使用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