Http-слушатель работает на фоне работника - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть несколько вопросов о http listener.Прежде всего, стоит ли запускать прослушиватель http внутри асинхронной задачи backgroundWorker?Или я должен использовать поток или задачу?

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);
}

Второй вопрос - это мой правильный пример, для одновременного принятия нескольких клиентских запросов?

...