Отмена выполнения по таймауту

Обсуждение, связанное с разработкой ПО верхнего уровня
Ответить
chirkov.nick
interested
interested
Сообщения: 5
Зарегистрирован: 09 авг 2016, 12:55
Версия LabVIEW: 14
Контактная информация:

Отмена выполнения по таймауту

Сообщение chirkov.nick »

Всем привет. Столкнулся со следующей проблемой. У меня приложение, которое работает с директориями на удаленной машине через расшаренную папку. Если доступ есть (удаленная машина работает, сервер запущен), то все классно. Но вот если доступа нет, то приложение виснет, пытаясь открыть расшаренную папку. Эту ситуацию можно воспроизвести введя \\192.168.1.1 в любой папке сверху, где путь. Винда начинает очень долго думать, а потом выбросит ошибку, что нет доступа к сетевой папке.
Вопрос в том, как можно проконтролировать эту ситуацию и выбросить пользователю ошибку сразу, чтобы он понимал, в чем проблема. Например, завершать выполнение функции (приложения?) по истечении какого-либо промежутка времени. Но я что-то не представляю, как это сделать.
Я пытался использовать следующий метод и ему подобные, типа ловить ошибку при получении директорий файлов. Не сработало.
Вложения
timeout_stop.JPG
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Отмена выполнения по таймауту

Сообщение Kosist »

На портале уже обсуждалось что-то подобное - http://www.labviewportal.org/viewtopic. ... 72&p=72092 . Попробуйте вначале сделать пинг сервера; т.к. его тайм-аут будет быстрее, чем тайм-аут експлорера винды..
Мы делили апельсин - много наших полегло...
chirkov.nick
interested
interested
Сообщения: 5
Зарегистрирован: 09 авг 2016, 12:55
Версия LabVIEW: 14
Контактная информация:

Re: Отмена выполнения по таймауту

Сообщение chirkov.nick »

Kosist писал(а):На портале уже обсуждалось что-то подобное - http://www.labviewportal.org/viewtopic. ... 72&p=72092 . Попробуйте вначале сделать пинг сервера; т.к. его тайм-аут будет быстрее, чем тайм-аут експлорера винды..

Спасибо за идею с пингом. Но, к сожалению, это не решает мою проблему. Расшаренная папка работает через samba. Таким образом, пинг то может идти, а вот доступа к папке может не быть (например, не запустилась samba).
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Отмена выполнения по таймауту

Сообщение dadreamer »

chirkov.nick писал(а):Спасибо за идею с пингом. Но, к сожалению, это не решает мою проблему. Расшаренная папка работает через samba. Таким образом, пинг то может идти, а вот доступа к папке может не быть (например, не запустилась samba).
Организуйте простейшую коммуникацию между машинами посредством TCP, UDP, Network Streams и т.п. В таком случае сразу будет понятно, есть или нет связь. Плюсом можно сделать командное управление по заданному алгоритму.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Отмена выполнения по таймауту

Сообщение Borjomy_1 »

chirkov.nick, Ну а что вы, собственно, хотели? Таймаут для того и сделан, чтобы дать время на соединение. Наверняка в реестре есть этот таймаут... Его можно попробовать подкрутить. Ну а в принципе - выделяйте это в отдельный диалоговый VI, который запускается асинхронно (через палитру Application Control). Тогда ему в любой момент можно вызвать метод "Abort VI".
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Лицевая панель»