Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1103712262
FromKiev
2004-12-22 13:44
2005.01.09
Сообщения из трея


11-1085045840
dimon1979
2004-05-20 13:37
2005.01.09
Добавление нового KOL-компонента


1-1103650760
denik
2004-12-21 20:39
2005.01.09
Окаймление для Edit.


1-1103554339
Zeqfreed
2004-12-20 17:52
2005.01.09
Всплывающее окно


14-1102939475
kai
2004-12-13 15:04
2005.01.09
как-то видел на этом форуме...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский