Tworzę program konsoli, który może przetestować odczyt/zapis w pamięci podręcznej przez symulację wielu klientów i napisał następujący kod. Proszę mi pomóc zrozumieć:Załaduj test za pomocą C# Async Oczekuje na
- Czy to poprawny sposób, aby osiągnąć symulację klienta wielofunkcyjnego
- Co mogę zrobić więcej, aby uczynić to test prawdziwy ładunek
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);
}
Wygląda na to, że WCf i wiele innych hostów usługowych nie będzie w stanie dużo załadować od jednego nadawcy, więc nawet jeśli bombardujesz swoją usługę z jednego komputera, inni będą mogli łatwo uzyskać dostęp do twojej usługi. –
Prawdopodobnie niektóre zadania mogą zostać zaplanowane za pomocą 'Factory.StartNew', a ich wykonanie zostanie opóźnione w przypadku dużej ilości równoczesnych zadań. – cassandrad