Всем привет. Столкнулся со следующей проблемой. У меня приложение, которое работает с директориями на удаленной машине через расшаренную папку. Если доступ есть (удаленная машина работает, сервер запущен), то все классно. Но вот если доступа нет, то приложение виснет, пытаясь открыть расшаренную папку. Эту ситуацию можно воспроизвести введя \\192.168.1.1 в любой папке сверху, где путь. Винда начинает очень долго думать, а потом выбросит ошибку, что нет доступа к сетевой папке.
Вопрос в том, как можно проконтролировать эту ситуацию и выбросить пользователю ошибку сразу, чтобы он понимал, в чем проблема. Например, завершать выполнение функции (приложения?) по истечении какого-либо промежутка времени. Но я что-то не представляю, как это сделать.
Я пытался использовать следующий метод и ему подобные, типа ловить ошибку при получении директорий файлов. Не сработало.
Отмена выполнения по таймауту
-
- interested
- Сообщения: 5
- Зарегистрирован: 09 авг 2016, 12:55
- Версия LabVIEW: 14
- Контактная информация:
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Отмена выполнения по таймауту
На портале уже обсуждалось что-то подобное - http://www.labviewportal.org/viewtopic. ... 72&p=72092 . Попробуйте вначале сделать пинг сервера; т.к. его тайм-аут будет быстрее, чем тайм-аут експлорера винды..
Мы делили апельсин - много наших полегло...
-
- interested
- Сообщения: 5
- Зарегистрирован: 09 авг 2016, 12:55
- Версия LabVIEW: 14
- Контактная информация:
Re: Отмена выполнения по таймауту
Kosist писал(а):На портале уже обсуждалось что-то подобное - http://www.labviewportal.org/viewtopic. ... 72&p=72092 . Попробуйте вначале сделать пинг сервера; т.к. его тайм-аут будет быстрее, чем тайм-аут експлорера винды..
Спасибо за идею с пингом. Но, к сожалению, это не решает мою проблему. Расшаренная папка работает через samba. Таким образом, пинг то может идти, а вот доступа к папке может не быть (например, не запустилась samba).
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Отмена выполнения по таймауту
Организуйте простейшую коммуникацию между машинами посредством TCP, UDP, Network Streams и т.п. В таком случае сразу будет понятно, есть или нет связь. Плюсом можно сделать командное управление по заданному алгоритму.chirkov.nick писал(а):Спасибо за идею с пингом. Но, к сожалению, это не решает мою проблему. Расшаренная папка работает через samba. Таким образом, пинг то может идти, а вот доступа к папке может не быть (например, не запустилась samba).
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Отмена выполнения по таймауту
chirkov.nick, Ну а что вы, собственно, хотели? Таймаут для того и сделан, чтобы дать время на соединение. Наверняка в реестре есть этот таймаут... Его можно попробовать подкрутить. Ну а в принципе - выделяйте это в отдельный диалоговый VI, который запускается асинхронно (через палитру Application Control). Тогда ему в любой момент можно вызвать метод "Abort VI".
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 38 Ответы
- 13300 Просмотры
-
Последнее сообщение AndreyDmitriev
-
- 20 Ответы
- 671 Просмотры
-
Последнее сообщение Zloydj