![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Вобщем мне нужно запускать 10 потоков с разными действиями,
но они запускаются часто поэтому мохинации рода IF x=true then не подойдут, может быть сбой, так вот нужен совет делать 10 разных типов таких => Код:
type TMyThread = class(TThread) private protected procedure Execute; override; public constructor Create; overload; end; или можно иначе? |
#2
|
||||
|
||||
![]() На конструкторе передаешь поинтер на нужную процедуру, а в заоверрайденой процедуре Execute вызываешь по этому поинтеру нужную функцию.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TAvatarThread = class(TThread) private FDoNumber: Integer; protected procedure Execute; override; public constructor Create(ADoNumber: Integer); end; TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { TAvatarThread } constructor TAvatarThread.Create(ADoNumber: Integer); begin inherited Create(True); FreeOnTerminate:=True; FDoNumber:=ADoNumber; Resume; end; procedure TAvatarThread.Execute; begin case FDoNumber of 1: begin end; 2: begin end; // ... 10: begin end; end; end; { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin TAvatarThread.Create(1); TAvatarThread.Create(2); // ... TAvatarThread.Create(10); end; end. Пишу программы за еду. __________________ |
#4
|
||||
|
||||
![]() Уж тогда, наверное, лучше воспользоваться функцией CreateThread...
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
||||
|
||||
![]() Код:
они запускаются часто поэтому мохинации рода IF x=true the |
#6
|
||||
|
||||
![]() Разъясни получше, что за коллизии возникают?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
||||
|
||||
![]() ну если они завпустятся подряд сразу
то сначало FDoNumber:=1; а другой в это время изменит на FDoNumber:=2; и запустится дважды 2 функция |
#8
|
||||
|
||||
![]() Семафорить значит надо.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#9
|
||||
|
||||
![]() проще тогда будет несколько типов
|
#10
|
||||
|
||||
![]() Цитата:
Пишу программы за еду. __________________ |
#11
|
||||
|
||||
![]() ок, спасибо
|