Добрый день!
Подскажите правильный подход.
Работаю с оборудованием, от которого постоянно запрашиваю ввод (оборудование выступает как сервер, софт — клиент).
Каждая единица оборудования обслуживается в своем потоке.
Для остановки потока взвожу флаг, но поток не завершается пока от оборудования не будет получен ответ(данные).
Хочу принудительно разрывать связь и завершать поток, как это лучше сделать?
или подскажите более правильный подход,- на знатока не претендую, я не волшебник, я только учусь
Здравствуйте, _d_m_, Вы писали:
___>И как осуществляется IO с оборудованием?
Оборудование — сервер, софт — клиент. Общение по TCP IP
TcpClient client;
client = new TcpClient(serverIP, port);
NetworkStream stream = client.GetStream();
Int32 bytes = stream.Read(data, 0, data.Length);
Затыкаюсь в четвертой строчке, все время жду ответа, хочу оборваться не дожидаясь ответа.
Здравствуйте, 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
Здравствуйте, pt4h, Вы писали:
P>Делайте IO асинхронно через BeginRead/EndRead. Using an Asynchronous Client Socket
Спасибо!
P.S. Зациклился на потоках. А надо было всего лишь с IO разобраться