一个关于异步HttpListener的问题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using DevSDK.Net.Sockets;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static HttpListener sSocket = null;
static void Main(string[] args)
{
sSocket = new HttpListener();
sSocket.Prefixes.Add("http://127.0.0.1:8080/");
sSocket.Start();
sSocket.BeginGetContext(new AsyncCallback(GetContextCallBack), sSocket);
Console.Read();
}
static void GetContextCallBack(IAsyncResult ar)
{
try
{
sSocket = ar.AsyncState as HttpListener;
HttpListenerContext context = sSocket.EndGetContext(ar);
Console.WriteLine(context.Request.Url.PathAndQuery);
// 这里我要进行数据库查询。。新来的连接它怎么处理的?
}
catch { }
sSocket.BeginGetContext(new AsyncCallback(GetContextCallBack), sSocket);
}
}
}
请问。这个异步HTTPLISTENER实现代码。。。假如进行数据库查询的那个地方。需要很长很长时间。
那么,新进来的连接请求
是被怎么处理的呢?是进行排队?还是异步本身就是一个多线程呢?
如果是排队。请问怎么解决并发的问题?