我必須處理一個非常長的數據庫表,並考慮中止此循環的最常用方法。主要的代碼序列是這樣的中止數據庫表的長時間運行過程:想法?
procedure TForm.ProcessmyTable(Sender : TObject);
begin
.....
myTable.first;
repeat
ReadSingleRecordfromTable (MyTable, aRecord) ;
ProcessMyRecord(aRecord) ;
MyTable.next;
until MYTable.EOF;
end;
unit .... ;
procedure ProcessMyRecord(aRecord : TMyDataRecord) ;
begin
// do not have user interface stuff here
// Application.Processmessages will not work here !!!
.... (long running code sequence)
end;
可以做一個計時器,打破基於使用var作爲標誌的支持定時循環....但是這真的是解決這一問題的最聰明的方式?
你需要Application.ProcessMessages在任何情況下。計時器需要處理WM_TIMER消息。 – kobik 2013-04-24 09:40:54
如果他想在迭代之間切換 - 那麼他不需要計時器,只需要一個'GetTickCount' – 2013-04-24 13:43:13