Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизИнтерфейс без тормозов Найти похожие ветки
← →
Ученик (2004-12-23 09:35) [0]Всем доброе время суток! Перейду к делу: можно ли сделать интерфейс, который не будет тормозить при выполнении ресурсоемких операций. Например, при отображении (точнее, поиске) огромного количества файлов в папке большинство браузеров "встают" (кнопки не реагируют на нажатие, меню не выпадает, ...) и приходится ждать завершения операции. В общем примеров такого поведения достаточно много... Хотелось бы знать можно ли в принципе (и если можно, то КАК) сделать интерфейс, который будет работать при любой задаче. Может как-то выделить отдельные процедуры в независимые потоки?
В общем, надеюсь на ответ... хотя реализация многих известных программ заставляет подозревать, что решения нет :(
← →
Александр Иванов © (2004-12-23 09:43) [1]Ресурсоемкие процедуры - в отдельные потоки.
← →
Ученик (2004-12-23 09:48) [2]А каким образом выделить процедуру в поток? ЕСли можно, какой-нибудь примерчик... (мечтательно)
← →
Александр Иванов © (2004-12-23 09:58) [3]В хелпе еще много интересного есть :).
This example shows the execute method of a thread used to send requests to a server over a socket connection:
procedure TMyClientThread.Execute;
var
TheStream: TWinSocketStream;
buffer: string;
begin
{ create a TWinSocketStream for reading and writing }
TheStream := TWinSocketStream.Create(ClientSocket1.Socket, 60000);
try
{ fetch and process commands until the connection or thread is terminated }
while (not Terminated) and (ClientSocket1.Active) do
begin
try
GetNextRequest(buffer); { GetNextRequest must be a thread-safe method }
{ write the request to the server }
TheStream.Write(buffer, Length(buffer) + 1);
{ continue the communication (eg read a response from the server) }
...
except
ifnot(ExceptObject is EAbort) then
Synchronize(HandleThreadException); { you must write HandleThreadException }
end;
end;
finally
TheStream.Free;
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c