![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение/запись файла в отдельном потоке
DevilDevil © (2009-07-22 11:01:00)Есть ли какие рекомендации? Код?
Как обработать ошибки, отменить, "сделать паузу"?
Какими блоками читать/писать?
Palladin (2009-07-22 11:33:00) [21]
> какой размер блока нужно выставлять? 16кб?
А какая разница в размере блока при использовании основного или дополнительного потока?
> Как её отловить?
А как ты ее в основном отлавливаешь?
> Ничего не зависнит?
А что зависнит? Основной поток виснит?
DevilDevil (2009-07-22 11:21:00) [22]какой размер блока нужно выставлять? 16кб?
при чтении/записи на CD/флешки/ломаного винта может возникать ошибка. Как её отловить? Ничего не зависнит?
Юрий Зотов (2009-07-22 11:15:00) [23]Что-то типа этого:
Execute:
while not Terminated do
try
while Pause do // Pause - булевское поле (или свойство) потока
Sleep(1);
Читать (или писать) блок
except
Передать в GUI сообщение об ошибке
Terminate
end;
GUI:
Кнопка "Пауза": Thread.Pause := True;
Кнопка "Продолжить": Thread.Pause := False;
Кнопка "Прервать": Thread.Terminate;