我有一個用Delphi 2006編寫的應用程序,它定期從位於網絡上的其他位置(100Mb以太網)的磁盤文件讀取。偶爾,通過網絡讀取需要很長時間(如20秒)並且應用程序凍結,因爲讀取是從主線程中的空閒處理程序完成的。使用Delphi讀取文件時實現超時
好吧,我可以把讀操作放到它自己的線程中,但是我想知道的是是否可以指定文件操作的超時時間,以便您可以放棄並執行其他操作或者報告讀取已經在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 ;
很好的解釋!但是,德爾福的例子,將不勝感激,我認爲... – 2010-11-17 14:55:31
我敢肯定,但我會留給那些更有能力(或更有動力)比我,@Workshop的人。正如我所說,這不是微不足道的,所以我不打算現場編寫一個例子。 – 2010-11-17 15:05:10