У меня есть приложение, написанное на Delphi 2006, которое регулярно читает файлы на диске, расположенные в других местах сети (100 МБ Ethernet).Иногда чтение по сети занимает очень много времени (например, 20 секунд), и приложение зависает, так как чтение выполняется из обработчика простоя в главном потоке.
ОК, я мог бы поместить операцию чтения вэто собственный поток, но я хотел бы знать, можно ли указать тайм-аут для файловой операции, чтобы вы могли сдаться и пойти и сделать что-то еще, или сообщить о том, что чтение зацепилось немного раньшечем через 20 секунд.
function ReadWithTimeout (var Buffer ;
N : integer ;
Timeout : integer) : boolean ;
begin
Result := false
try
SetReadTimeout (Timeout) ; // <==========================???
FileStream.Read (Buffer, N) ;
Result := true ;
except
...
end ;
end ;