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

Обсуждение, связанное с разработкой ПО верхнего уровня

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

Postby chirkov.nick on 20 Jan 2017, 08:56

Всем привет. Столкнулся со следующей проблемой. У меня приложение, которое работает с директориями на удаленной машине через расшаренную папку. Если доступ есть (удаленная машина работает, сервер запущен), то все классно. Но вот если доступа нет, то приложение виснет, пытаясь открыть расшаренную папку. Эту ситуацию можно воспроизвести введя \\192.168.1.1 в любой папке сверху, где путь. Винда начинает очень долго думать, а потом выбросит ошибку, что нет доступа к сетевой папке.
Вопрос в том, как можно проконтролировать эту ситуацию и выбросить пользователю ошибку сразу, чтобы он понимал, в чем проблема. Например, завершать выполнение функции (приложения?) по истечении какого-либо промежутка времени. Но я что-то не представляю, как это сделать.
Я пытался использовать следующий метод и ему подобные, типа ловить ошибку при получении директорий файлов. Не сработало.
Attachments
timeout_stop.JPG
chirkov.nick
interested
interested
 
Posts: 5
Joined: 09 Aug 2016, 12:55
LabVIEW Version: 14
Karma: 0

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

Postby Kosist on 20 Jan 2017, 09:04

На портале уже обсуждалось что-то подобное - http://www.labviewportal.org/viewtopic. ... 72&p=72092 . Попробуйте вначале сделать пинг сервера; т.к. его тайм-аут будет быстрее, чем тайм-аут експлорера винды..
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 816
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 238
CLAD I/O VIP students

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

Postby chirkov.nick on 20 Jan 2017, 14:10

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



Спасибо за идею с пингом. Но, к сожалению, это не решает мою проблему. Расшаренная папка работает через samba. Таким образом, пинг то может идти, а вот доступа к папке может не быть (например, не запустилась samba).
chirkov.nick
interested
interested
 
Posts: 5
Joined: 09 Aug 2016, 12:55
LabVIEW Version: 14
Karma: 0

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

Postby dadreamer on 20 Jan 2017, 14:35

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

Организуйте простейшую коммуникацию между машинами посредством TCP, UDP, Network Streams и т.п. В таком случае сразу будет понятно, есть или нет связь. Плюсом можно сделать командное управление по заданному алгоритму.
User avatar
dadreamer
professor
professor
 
Posts: 3039
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 748
I/O VIP vision internet

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

Postby Borjomy_1 on 20 Jan 2017, 14:58

chirkov.nick, Ну а что вы, собственно, хотели? Таймаут для того и сделан, чтобы дать время на соединение. Наверняка в реестре есть этот таймаут... Его можно попробовать подкрутить. Ну а в принципе - выделяйте это в отдельный диалоговый VI, который запускается асинхронно (через палитру Application Control). Тогда ему в любой момент можно вызвать метод "Abort VI".
Borjomy_1
expert
expert
 
Posts: 1786
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 310
VIP


Return to Лицевая панель

Who is online

Users browsing this forum: No registered users and 2 guests

cron