Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Си-решеточник
140 / 134 / 60
Регистрация: 07.02.2011
Сообщений: 669
1
.NET 2.x

Реализация асинхронной проверки соединений

05.11.2015, 10:33. Показов 1150. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток!

Возникла проблема, которую я никак не могу нормально решить, прошу вашей помощи.

В приложении, после указания хоста/ip-адреса устройства, его необходимо пропинговать и проверить доступность нескольких портов для работы с ним. Во время этой проверки крайне желательно, чтобы пользователь мог выполнять другие действия с программой. Это легко сделать, организовав проверку в другом потоке, но тут вылезла одна неприятная особенность: не дожидаясь конца проверки, пользователь может указать другой хост/ip-адрес, при этом предыдущую проверку надо прервать и начать новую. Сделать это у меня нормально не получается, Abort() потока не выполняется корректно, да и решение это кривое, флаги какие-то ставить для преждевременного завершения просто негде.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2015, 10:33
Ответы с готовыми решениями:

Оптимальная реализация проверки
var variables = bind.Split('_'); value.Add(new...

Реализация проверки есть ли в корзина такая вещь
Здравствуйте не могли бы помочь на форме есть 2 гридами 1-корзина(Наименование, цена, количество,...

Программа для проверки разрыва интернет-соединений
Доброго времени! Подскажите пожалуйста программу которая поможет отследить количество разорванных...

Реализация проверки
Вечер добрый, есть модуль к которому прикреплено регламентное задание, которое раз в месяц создает...

4
Эксперт .NET
7558 / 5047 / 1202
Регистрация: 25.05.2015
Сообщений: 15,376
Записей в блоге: 14
05.11.2015, 10:40 2
Если проверка не одним длительным вызовом одной API функции, то можно и флаги расставить.
Иначе, сообщить потоку, что его результат больше не требуется и запустить новый.
0
Си-решеточник
140 / 134 / 60
Регистрация: 07.02.2011
Сообщений: 669
05.11.2015, 10:44  [ТС] 3
Цитата Сообщение от Rius Посмотреть сообщение
Если проверка не одним длительным вызовом одной API функции
Именно так, по этому флаги не годятся.
Цитата Сообщение от Rius Посмотреть сообщение
сообщить потоку, что его результат больше не требуется
А каким образом? Поток всё равно продолжит выполняться, даже когда будет создан новый.
0
Эксперт .NET
7558 / 5047 / 1202
Регистрация: 25.05.2015
Сообщений: 15,376
Записей в блоге: 14
05.11.2015, 10:46 4
Лучший ответ Сообщение было отмечено Rameron как решение

Решение

Да фиг с ним, пусть выполняется. Background ему назначить можно, тогда с приложением закроется если что, раньше времени. Главное, чтобы продолжающаяся работа ни на что не влияла.
Сообщить можно через параметр по ссылке, переданный в запуск потока.
1
Си-решеточник
140 / 134 / 60
Регистрация: 07.02.2011
Сообщений: 669
05.11.2015, 10:52  [ТС] 5
Цитата Сообщение от Rius Посмотреть сообщение
Сообщить можно через параметр по ссылке, переданный в запуск потока.
Попробую, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2015, 10:52

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Реализация проверки датаграмм
Здравствуйте. Начал писать чат для локалки на IndyUDP компоненте. - Почему UDP? - Имеются...

Реализация проверки наличия файла
Подскажите пожалуйста, какими средствами можно реализовать проверку наличие файла. Т.е. в столбец...

Реализация проверки переполнения и знака числа
Здравствуйте. Делаю курсовую по схемотехнике. Вследствие продолжительной паузы были забыты...

Реализация проверки 5 в ряд в одномерном массиве
Так проверяю 5 в ряд по вертикали, как поправить чтоб разделить на столбцы и не было проблемы в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.