Jeg har fundet nogle eksempler fra MS's hjemmeside og jeg synes ikke helt det virker som jeg gerne vil:
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Xml;
using System.Threading;
namespace TestApp
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: Add code to start application here
//
for(int i=0; i<=5; i++)
{
Send();
Console.WriteLine("antal request sendt: " + i);
}
Console.ReadLine();
}
static void PoolFunc(IAsyncResult ar)
{
HttpWebRequest request;
HttpWebResponse response;
Console.WriteLine("Response received on pool: {0}", Thread.CurrentThread.IsThreadPoolThread);
request = (HttpWebRequest)ar.AsyncState;
response = (HttpWebResponse)request.EndGetResponse(ar);
Console.WriteLine("Response size: {0}", response.ContentLength);
}
static void Send()
{
HttpWebRequest request;
IAsyncResult ar;
request = (HttpWebRequest)WebRequest.CreateDefault( new Uri("
http://www.microsoft.com"));
ar = request.BeginGetResponse(new AsyncCallback(PoolFunc), request);
Console.WriteLine("Synchronous: {0}", ar.CompletedSynchronously);
//Console.ReadLine();
}
}
}
Jeg får kun udskrevet:
Synchronous: False
antal request sendt: 0
Synchronous: False
antal request sendt: 1
Synchronous: False
antal request sendt: 2
Synchronous: False
antal request sendt: 3
Synchronous: False
antal request sendt: 4
Synchronous: False
antal request sendt: 5
Response received on pool: True
Response size: 16511
Response received on pool: True
Response size: 16511
Altså kommer der ingen svar fra de sidste 3 requests og det er jo ikke så godt...