首页 > 解决方案 > 在后台工作人员上运行的 Http 侦听器

问题描述

我对http监听器有几个问题。首先,在异步 backgroundWorker 任务中运行 http 侦听器是一种好习惯吗?或者我应该使用线程还是任务?

private void Main_Load(object sender, EventArgs e)
{
    backgroundWorker.RunWorkerAsync();
}

private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
    listener = new HttpListener();
    listener.Prefixes.Add("http://localhost:8000/");
    listener.Prefixes.Add("http://127.0.0.1:8000/");
    listener.AuthenticationSchemes = AuthenticationSchemes.Anonymous;

    listener.Start();
    while (true)
    {
        var result = listener.BeginGetContext(new AsyncCallback(ListenerCallback), listener);
        result.AsyncWaitHandle.WaitOne();
    }
}

private void ListenerCallback(IAsyncResult result)
{
    var context = listener.EndGetContext(result);
}

第二个问题是我的例子对,同时接受多个客户请求?

标签: c#httplistener

解决方案


推荐阅读