Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

Интерфейс без тормозов   Найти похожие ветки 

 
Ученик   (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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
14-1103530570
MVVD
2004-12-20 11:16
2005.01.09
Почему не выключается компьютер


6-1098442071
Stlh
2004-10-22 14:47
2005.01.09
UDP (multicast) loopback в 98й.


14-1103354543
ms
2004-12-18 10:22
2005.01.09
Неужели я так плохо знаю C++, или как это можно объяснить?


14-1103618273
Роман
2004-12-21 11:37
2005.01.09
нужна разработка программы с БД


14-1103442912
Matveyev
2004-12-19 10:55
2005.01.09
Посмотрите программу