Многопоточность HttpListern резюме спящего потока - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть HttpListener, который для каждого полученного запроса запускает winform и возвращает массив байтов, представляющих изображение.Это изображение берется winform, когда он выполняет некоторые команды, проанализированные из строки запроса.Любые winforms выполняются в другом потоке.

Прямо сейчас, после того как winform выполнила свою работу, в качестве ответа она получает массив байтов, а затем ее поток умер, если тот же пользователь делает новый запроссоздается новый поток (с новой формой win).

Я предполагаю, что смогу ли я поддерживать каждый поток, используя ID для каждого пользователя (IP-адрес, GUID, cookie), поэтому я ненеобходимо каждый раз воссоздавать winform, и в то же время winform будет сохранять прежнее состояние.

Возможно ли это?Или я должен перейти в другое направление или дизайн?

1 Ответ

0 голосов
/ 05 сентября 2011

Вы можете изменить дизайн на подход «рабочие / задачи», определив отдельно рабочий пул (поток + форма) и пул задач.После этого вы можете решить, создавать ли новую пару потоков / форм для обработки задачи или повторно использовать существующую, вы можете выбрать количество рабочих для запуска, ограничивая риск чрезмерного использования ресурсов сервера.Но использование Winforms на стороне сервера определенно не лучший способ, как отмечал shf301.

...