我想在客户端上收听网络浏览器的请求。我知道我应该使用HttpListener
,但我不知道从异步还是同步使用?使用BeginGetContext
或GetContext
?
try
{
HttpListener listener = new HttpListener();
listener.Prefixes.Add[this is not a link]("http://127.0.0.1:9080/");
listener.Start();
Console.WriteLine("im listening...");
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
}
catch(exception e)
{
console.writeline(e.tostring());
}
答案 0 :(得分:1)
I have written before about the trade-off between synchronous and asynchronous IO.因为只有一个线程占用接受新客户端同步IO就好了。你最多可以保存一个节省很少的线程。
您可能希望将实际请求处理为异步。如果您有许多并发请求,这可能是一个好主意。如果你几乎没有并发请求,你什么也得不到。
请记住,异步IO通常更多工作,更容易出错。在有充分理由的时候使用它。