Re: неубиваемый поток с HTTPListener
От: Undertaker  
Дата: 14.04.07 16:12
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>Как прибить все же поток с HTTPListener? Выполнение thread.Abort() не приводит к завершению, GUI пропадает, программа висит в памяти

_C_>P S Код написан на Boo / Python

Я недавно столкнулся с такой же проблемой. Беда в том, что Thread.Abort абортит поток только в случае, если он был заблокирован в managed коде. Т.к. HttpListener это всего лишь обертка над http.sys, которая входит в ядро ОС, и блокировка происходит уже в unmanaged коде, то прервать выполнение потока не получается. По крайней мере, я более разумного объяснения этому факту не нашел.

Проблему в своем случае обошел с помощью последовательного вызова cl.BeginGetContext() -> cl.EndGetContext() -> ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.