Облака / Clouds
    Go to Copy.com
    Copy.com
    The bast cloud service
    Get 20 GB free!!!
    Support WebDav.
    Show more >>

    Go to Dropbox.com
    Dropbox.com
    time-tested cloud storage
    Support WebDav.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Найти все компьютеры в сети
   Категория: Интернет и Сети
  Фреймы
   Категория: Компоненты
  Распознавание кодировки. Перекодировка.
   Категория: Текст и строки
  Listbox - элементы вверх-вниз
   Категория: Компоненты
  Поставить пароль на Paradox
   Категория: Базы данных
  Сохранение странички в файл из TWebBrowser
   Категория: Интернет и Сети
  Как нарисовать календарь
   Категория: Текст и строки
  Определение размера каталога
   Категория: Файловая система
  Шифрование текста по паролю
   Категория: Текст и строки
  Узнать запущен ли сервис FireBird
   Категория: Интернет и Сети

Delphi - Справочник: TThreadFunc

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

 TThreadFunc
type TThreadFunc : Function(Parameter : Pointer) : Integer;
Тип (Unit System)
Определяет функцию, которая будет вызвана BeginThread
Описание:
Тип TThreadFunc определяет функцию, а не данные. Эта функция обычно используется как параметр для запроса функции BeginThread при запуске отдельного потока операции. Определенная функция исполняет действия потока.

Код возврата для функции это код завершения для потока.
Пример кода: Простой пример

// Полный код Модуля. // ----------------------------------------------------------- // Вы должны поместить этот код в модуль с именем Unit1 и с формой // названную Form1, которая имеет событие OnCreate названное FormCreate. unit Unit1; interface uses Forms, Dialogs, Windows, SysUtils; type TMsgRecord = record thread : Integer; msg : string[30]; end; TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end; var Form1: TForm1; Implementation {$R *.dfm} // Вложение определений формы ThreadVar // Мы должны позволить каждому потоку его собственные образцы // переданной переменной записи msgPtr : ^TMsgRecord; // Частная поточная процедура для показа строки function ShowMsg(Parameter : Pointer) : Integer; begin // Устанавливаем 0 возвращаемому значению Result := 0; // Устанавливаем указатель на переданные данные // Обратите внимание, что каждый поток имеет отдельную копию msgPtr msgPtr := Parameter; // Показ этого сообщения ShowMessagePos('Thread '+IntToStr(msgPtr.thread)+' '+msgPtr.msg, 200*msgPtr.thread, 100); // Конец потока EndThread(0); end; procedure TForm1.FormCreate(Sender: TObject); var id1, id2 : LongWord; thread1, thread2 : Integer; msg1, msg2 : TMsgRecord; showMsgFunc : TThreadFunc; begin // Установите поточную функцию showMsgFunc := Addr(ShowMsg); // Устанавливаем наши отображаемые сообщения msg1.thread := 1; msg1.msg := 'Hello World'; msg2.thread := 2; msg2.msg := 'Goodbye World'; // Запуск выполнения первого потока, спрашивающего имя пользователя thread1 := BeginThread(nil, 0, showMsgFunc, Addr(msg1), 0, id1); // Спрашиваем также и фамилию thread2 := BeginThread(nil, 0, showMsgFunc, Addr(msg2), 0, id2); // Гарантируйте, что потоки будут закрыты только когда всё сделано ShowMessagePos('Нажмите это, когда другие диалоги закончились.', 200, 300); // Наконец, очищаем, закрывая потоки CloseHandle(thread1); CloseHandle(thread2); end; end.

Результат:
Три диалога отобразят:

Thread 1 Hello World
Thread 2 Goodbye World
Нажмите это, когда другие диалоги закончились.

  << Вернуться