Как лучше всего насильно оборвать(завершить) поток?
От: nFalcon  
Дата: 16.09.08 08:03
Оценка:
Добрый день!
Подскажите правильный подход.
Работаю с оборудованием, от которого постоянно запрашиваю ввод (оборудование выступает как сервер, софт — клиент).
Каждая единица оборудования обслуживается в своем потоке.
Для остановки потока взвожу флаг, но поток не завершается пока от оборудования не будет получен ответ(данные).
Хочу принудительно разрывать связь и завершать поток, как это лучше сделать?
или подскажите более правильный подход,- на знатока не претендую, я не волшебник, я только учусь
Re: Как лучше всего насильно оборвать(завершить) поток?
От: _d_m_  
Дата: 16.09.08 08:15
Оценка: +1
Здравствуйте, nFalcon, Вы писали:

F>Для остановки потока взвожу флаг, но поток не завершается пока от оборудования не будет получен ответ(данные).

F>Хочу принудительно разрывать связь и завершать поток, как это лучше сделать?

И как осуществляется IO с оборудованием?
Re[2]: Как лучше всего насильно оборвать(завершить) поток?
От: nFalcon  
Дата: 16.09.08 10:14
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>И как осуществляется IO с оборудованием?


Оборудование — сервер, софт — клиент. Общение по TCP IP

TcpClient client;
client = new TcpClient(serverIP, port);
NetworkStream stream = client.GetStream();
Int32 bytes = stream.Read(data, 0, data.Length);


Затыкаюсь в четвертой строчке, все время жду ответа, хочу оборваться не дожидаясь ответа.
Re[3]: Как лучше всего насильно оборвать(завершить) поток?
От: pt4h Беларусь http://dzmitryhuba.blogspot.com/
Дата: 16.09.08 10:23
Оценка:
Здравствуйте, nFalcon, Вы писали:

F>Здравствуйте, _d_m_, Вы писали:


___>>И как осуществляется IO с оборудованием?


F>Оборудование — сервер, софт — клиент. Общение по TCP IP


F>
F>TcpClient client;
F>client = new TcpClient(serverIP, port);
F>NetworkStream stream = client.GetStream();
F>Int32 bytes = stream.Read(data, 0, data.Length);
F>


F>Затыкаюсь в четвертой строчке, все время жду ответа, хочу оборваться не дожидаясь ответа.

Делайте IO асинхронно через BeginRead/EndRead. Using an Asynchronous Client Socket
Re[4]: Как лучше всего насильно оборвать(завершить) поток?
От: nFalcon  
Дата: 16.09.08 11:49
Оценка:
Здравствуйте, pt4h, Вы писали:

P>Делайте IO асинхронно через BeginRead/EndRead. Using an Asynchronous Client Socket


Спасибо!
P.S. Зациклился на потоках. А надо было всего лишь с IO разобраться
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.