В MSDNL указано что метоd Receive класса UdpClient
блокирует управления пока сообщение не примется (The Receive method blocks execution until a message is received).
В связи с чем вот такой вопрос:
Предположим, что по каким-то причинам(не буду на них останавливаться, но для примера разрыв сети) компьютер от которого я жду ответа не отвечает. У меня исполнение программы действительно останавливается на неопределенное время.
Если я вынесу это в отдельный поток, то Abort() не помогает, т.к. исполнение приостанавливается, т.е. я не могу обработать исключение от Abort().
Вопрос собственно вот в чем:
Как мне прервать ожидание в методе Receive(), или как убить поток?
Здравствуйте, Banch, Вы писали:
LKS>>Как мне прервать ожидание в методе Receive(), или как убить поток?
B>придется перейти на асинхронную работу с сокетами (класс Socket)
Да этот способ мне известен, но...
Я несколько переформулирую вопрос:
Существуют ли вообще способ убить поток если есть что-то вроде метода Receive() (необязательно сетевое)
Здравствуйте, Banch, Вы писали:
LKS>>Как мне прервать ожидание в методе Receive(), или как убить поток?
B>придется перейти на асинхронную работу с сокетами (класс Socket)
Да этот способ мне известен, но...
Я несколько переформулирую вопрос:
Существуют ли вообще способ убить поток если ввнутри его есть что-то вроде метода Receive() останавливающее поток исполнения(необязательно сетевое)
Здравствуйте, LKS2, Вы писали:
LKS> В MSDNL указано что метоd Receive класса UdpClient LKS>блокирует управления пока сообщение не примется (The Receive method blocks execution until a message is received).
LKS>В связи с чем вот такой вопрос:
LKS>Предположим, что по каким-то причинам(не буду на них останавливаться, но для примера разрыв сети) компьютер от которого я жду ответа не отвечает. У меня исполнение программы действительно останавливается на неопределенное время.
LKS>Если я вынесу это в отдельный поток, то Abort() не помогает, т.к. исполнение приостанавливается, т.е. я не могу обработать исключение от Abort().
LKS> Вопрос собственно вот в чем:
LKS>Как мне прервать ожидание в методе Receive(), или как убить поток?
Попробуй просто закрыть сокет. Не знаю как в днете, а в обычных сокетах это работает