Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.10;
Скачать: CL | DM;

Вниз

Как сделать так, чтобы программа не висла?   Найти похожие ветки 

 
.::D.e.M.o.N.i.X::. ©   (2003-02-28 15:26) [0]

Например, я читаю файл с диска с помощью API, а файл плохо читается и API глохнет(программа не отвечает на системные запросы). Стандартно Application.processmessage не помагает. Как обойти зависание?


 
Dms   (2003-02-28 15:30) [1]

Используй потоки, должно помочь.


 
Anatoly Podgoretsky ©   (2003-02-28 15:37) [2]

Как и откуда читаешь?


 
Serious Sam   (2003-02-28 15:41) [3]

>Как обойти зависание?

Либо сделать нормальный кодинг, либо не запускать программу


 
.::D.e.M.o.N.i.X::. ©   (2003-02-28 15:42) [4]

Тупо делаю FileRead - на нем и виснет:(


 
Smithson ©   (2003-02-28 15:46) [5]

Код в студию!


 
.::D.e.M.o.N.i.X::. ©   (2003-02-28 15:51) [6]

Короче что-то около того
BytesCopied := FileRead(Source, CopyBuffer^, 512);
if BytesCopied > 0 then
FileWrite(Dest, CopyBuffer^, BytesCopied);

Если файл плохо читается, то на месте BytesCopied := FileRead(Source, CopyBuffer^, 512); наглухо виснет.


 
Anatoly Podgoretsky ©   (2003-02-28 16:05) [7]

Делай в отдельном потоке


 
.::D.e.M.o.N.i.X::. ©   (2003-02-28 16:08) [8]


> Делай в отдельном потоке

А по-конкретней... DLL что-ли для этого писать?


 
Serious Sam   (2003-02-28 16:22) [9]

Что значит "файл плохо читается"?


 
BJValentine ©   (2003-02-28 16:26) [10]

Попробуй секцию Try... Except;


 
Переяслов Григорий ©   (2003-02-28 16:28) [11]

Используй TThread bkb File/New -> Thread object


 
.::D.e.M.o.N.i.X::. ©   (2003-02-28 16:35) [12]


> Попробуй секцию Try... Except;

Это уже пройденный материал. Дело в том, что FileRead виснет например на сидюке, когда компашка дохлая(вся в царапинах). FileRead может выполнятся и 10 минут и 20 минут (у меня сидюк Asus50x еще до удешевления производтсва, так он все подрят жрет, даже компашки с поврежденной поверхностью, и что удивительно без ошибок). На других сидюках(Sony, Panasonic, Samsung) FileRead завершается быстро, но результат = 0.


 
.::D.e.M.o.N.i.X::. ©   (2003-02-28 16:37) [13]


> Используй TThread bkb File/New -> Thread object

Спасибо, только что прочитал статью на InfoCity.


 
Serious Sam   (2003-02-28 16:37) [14]

overlapped read пробовали?



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

Текущий архив: 2003.03.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
14-30135
{{{KOTOS}}}
2003-02-23 13:20
2003.03.10
МАСТЕРА СКИНЬТЕ ФАЙЛ ПОЖАЛУЙСТА GDS32.dl для NT


14-30068
Palladin
2003-02-21 13:53
2003.03.10
Подскажите имя hlp файла для Microsoft Data Access SDK


6-29971
Anton
2003-01-17 11:16
2003.03.10
Почта


14-30084
vic_774N
2003-02-21 22:33
2003.03.10
Кто разрабатывал программы в среде FreePascal ? Отзовитесь !


14-30095
Romkin
2003-02-21 14:22
2003.03.10
Поздравление :-))