Вниз
Скачать: CL | DM;

Подвисание при обращениии по несущ. адресу.   Найти похожие ветки 

 
FZ*XupypG ©   (2003-05-04 01:57) [0]

При сохранении файла на компьютер в локальной сети используется SaveToFile. При этом, если компьютер перезагружается или ещё что-то, происходит зависание, иногда навсегда... Существует ли способ обеспечить корректную обработку такого случая и недопустить зависание программы? Стандартные блоки try\finl\exc здесь неработают. Также бесполезно проверять доступность компьютера, т.к. он может начать перезагр во время сохранения файла.


 
Great_Lesh   (2003-05-04 07:37) [1]

Хоть бы кусочек кода дал + посмотрелбя, на какой строчке зависает и указал в коде комментарием, а то не совсем понятно, о чем идет речь. Попробуем помочь!


 
FZ*XupypG ©   (2003-05-07 02:01) [2]

На форме есть RichEdit. Текст из него сохраняю так
RichEdit1.lines.savetoFile("\\SomeComp\c\temp\");
И вот в момент сохранения целевой компьютер начинает перезагружаться. При этом программа начинает тормозить и зависает намертво. Как обойти зависание программы в таком случае?


 
Verg ©   (2003-05-07 09:07) [3]

Боюсь, что для общего случая никак.
Единственный способ - это отказаться от SaveToFile на сетевую шару, а использовать Win Api overlapped IO. Правда, на 9x работать не будет.
Зато можешь прервать операцию и/или использовать таймауты.


 
FZ*XupypG ©   (2003-05-08 02:17) [4]

2Verg
Хорошо. Тогда как прервать оперцию или использовать таймаут?


 
Verg ©   (2003-05-08 11:21) [5]

Ну, я же тебе говорю - используй overlapped IO и у тебя появится свобода маневра.
Стандартные делфийные reset/rewrite не позволяют использовать такого сорта ввод/вывод, поэтому придется savetofile сделать в файл на локальном диске, а затем используя Win Api возможности по overlapped перекачать этот файл на сетевую шару.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
6-44794
mod
2003-05-06 14:26
2003.07.14
Активные порты


1-44635
Zigs
2003-07-01 19:11
2003.07.14
Как изменить межстрочное расстояние, например в TDBMemo?


1-44683
Dimchik_666
2003-06-30 17:22
2003.07.14
Как открыть программу?


1-44644
NAlexey
2003-07-01 11:15
2003.07.14
Ошибка записи в поток.


1-44737
Soft
2003-07-01 13:19
2003.07.14
Как смапировать файл в память




   Наверх