Пример создания многопоточного приложения в Delphi
Этот раздел содержит описание шагов, необходимых для создания простого, но показательного примера многопоточного приложения. Мы будем пытаться вычислить число "пи" с максимальной точностью после запятой. Конечно, встроенная в Delphi константа Pi имеет достаточную точность, правильнее сказать – максимальную, допускаемую самым точным 10-байтным форматом для вещественных чисел Extended. Так что превзойти ее нам не удастся. Но этот пример использования потоков может послужить прологом для решения реальных задач.
Первый пример будет содержать два потока: главный (обрабатывающий ввод пользователя) и вычислительный; мы сможем изменять их свойства и наблюдать за реакцией. Итак, выполните следующую последовательность действий:
- В среде Delphi откройте меню File и выберите пункт New Application.
- Расположите на форме пять меток и один переключатель, как показано на рис. 29.2.
Переименуйте главную форму в fmMain.
Рис. 29.2. Внешний вид формы для приложения Threads1
- Откройте меню File и выберите пункт Save Project As. Сохраните модуль как uMain, а проект – как Threads 1.
- Откройте меню File и выберите пункт New. Затем дважды щелкните на объекте типа поток (значок Thread Object). Откроется диалоговое окно New Items, показанное на рис. 29.3.
Рис. 29.3. Диалоговое окно New Items с выбранным объектом типа "поток"
- Когда появится диалоговое окно для именования объекта поток, введите TPiThread и нажмите клавишу Enter (рис. 29.4). Помимо этого, при желании, вы можете присвоить создаваемому потоку имя, установив флажок Named Thread и задав имя в поле Thread Name. Так как имя потока используется только для удобства обозначения, эту возможность мы использовать не будем.
Delphi создаст новый модуль и поместит в него шаблон для нового потока.
Рис. 29.4. Диалоговое окно New Thread Object