Ho una semplice applicazione console che assomiglia a questo:Come determinare il numero di richieste simultanee da un httpclient asincrono durante l'esecuzione?
private static StringBuilder sb = new StringBuilder();
private static HttpClient client = new HttpClient();
private static async Task<HttpStatusCode> AccessTheWebAsync()
{
HttpResponseMessage response = await client.GetAsync("http://www.google.com").ConfigureAwait(false);
return response.StatusCode;
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
List<Task> tasks = new List<Task>();
for (int i = 0; i < 10; i++)
tasks.Add(AccessTheWebAsync());
Task.WaitAll(tasks.ToArray());
foreach (Task<HttpStatusCode> t in tasks)
sb.Append((int)t.Result).Append(Environment.NewLine);
Console.WriteLine(sb.ToString());
sw.Stop();
Console.WriteLine("Run Completed, Time elapsed: {0}", sw.Elapsed);
Console.ReadLine();
}
Qui ho iniziato 10 richieste asincrone web e raccogliere i codici di risposta quando le richieste sono completate e li elenco.
- Domanda: E 'possibile utilizzare VS2012 per eseguire il debug l'applicazione in modo in cui è possibile determinare il numero di richieste simultanee web che stanno accadendo in un qualsiasi punto durante l'esecuzione?
motivo è che ho scoperto che c'è qualcosa che si può cambiare il App.config
:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.net>
<connectionManagement>
<add address = "*" maxconnection = "10" />
</connectionManagement>
</system.net>
</configuration>
Ma, io non ho un buon modo per determinare se questo è in realtà di lavoro o meno.
I server hanno impostato questo limite?
Il sistema operativo ha impostato questo limite?
Questa configurazione di app e/o .NET ha fissato questo limite?
non è che ci sia qualcosa di sbagliato in quello che stai facendo ora, ma solo FYI, HttpClient può essere utilizzato per più chiamate simultanee da solo - non è necessario avere N diverse istanze di esso per N diverse chiamate. –
@JamesManning OK, ho fatto un campo invece. Grazie! – user17753
Il tuo obiettivo è di tenere traccia di questo in modo programmatico (ad esempio, per la visualizzazione in un'interfaccia utente) o semplicemente per verificare il comportamento previsto? –