|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.04.2019, 11:03 | #1 |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
Проверка доступности компьютера в другом потоке
Тема стара, как мир, но до сих пор внятного ответа у меня нет.
Проблема: при обращении к другому компьютеру по сети (назовем его сервером), он может быть недоступен (по разным причинам: не работает сеть, выключен сервер, переименована или удалена папка и т.д.). При этом на запрос DirectoryExists (или FileExists) комп зависает на несколько секунд, что плохо. Чтобы этого избежать, я запускаю таймер на 1.5 секунды и выполняю команду DirectoryExists в отдельном потоке. Далее либо поток завершается, останавливает таймер и сообщает, доступна ли папка, либо таймер завершается первым, останавливает поток и соответственно папка не доступна. Код:
Вообще мне надо в процедуре вызвать DirectoryExists и если папка есть, сделать с ней что-то, если нет, вывести сообщение, но по факту получается, что я делю процедуру на две: в первой вызываю CheckDrive8, которая проверяет доступность папки, а затем вызывается вторая процедура, которая делает действия. При таком варианте мне не требуется выполнения каких-либо действий после выполнения Thr8.proc, т.е. я проверил доступность папки, в процедуре, которую передаю в Thr8.proc взял информацию из папки и вывел на экран. Код работает, но, во-первых, меня беспокоит, что он кривой и я что-то сделал не так. Во-вторых, мне потребовалось получить данную информацию и сделать с ней что-то, и чтобы не плодить процедуры, я прибег к такому коду: Код:
Этот код мне совсем не нравится. Как все это с потоками написать красивее и, главное, правильнее? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Bash проверка доступности хостов | Misha305 | Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) | 4 | 12.04.2017 20:50 |
Проверка доступности URL (masm) | Mr.gretty | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 14.11.2016 12:25 |
Проверка доступности файла | Freezer | Общие вопросы Delphi | 2 | 25.03.2011 10:32 |
Проверка доступности сервера | xmaratx | Работа с сетью в Delphi | 2 | 21.04.2009 16:14 |
Проверка доступности файла | Marsik | Помощь студентам | 2 | 05.04.2008 09:53 |