Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
ВнизTThread Найти похожие ветки
← →
Chlavik (2003-02-15 04:20) [0]Как создать несколько одинаковых потоков и передать каждому какоето значение например строку, строка у кажого потока будет разной ... Не ужели нужно для этого изменять конструктор потока??? Пасиба за help
← →
Poirot (2003-02-15 10:37) [1]ДА!!! Но этож просто
constructor Create(S:String; Suspended:Boolean);
Ну тут что-то помоему не так... У меня сегодня думалка спит... но принцип такой...
begin
Create(Suspended);
FS:=S;
end;
← →
Юрий Зотов (2003-02-15 10:39) [2]TMyThread = class(TThread)
private
FMyData: string;
protected
procedure Execute: override;
public
property MyData: string read FMyData write FMyData;
end;
....
with TMyThread.Create(True) do
begin
MyData := "Привет";
...
Resume
end;
← →
Nerpa (2003-02-15 10:51) [3]Попробуй так:
type
TMyThread = class(TThread)
private
{ Private declarations }
FParam:string;
protected
procedure Execute; override;
public
property Param:string write FParam;
end;
procedure TMyThread.Execute;
begin
if (Length(FParam)=0) then
FParam:="???";
end;
begin
MyThread := TMyThread.Create(True); // в режиме паузы
MyThread.Param:=IntToStr(Random(1000));
MyThread.Resume;
end;
← →
Zelius (2003-02-15 13:57) [4]Можно и я попробую?? :)
TMyThread = class(TThread)
private
FMyData: string;
protected
procedure Execute: override;
public
constructor Create( aMyData: String; aSuspended: Boolean);
end;
constructor TMyThread.Create( aMyData: String; aSuspended: Boolean);
begin
FMyData := aMyData;
inherited Create(aSuspended);
end;
В такой последовательности поток не обратится к данным раньше чем ты их присваиваешь и никаких доп. действий по синхронизации не нужно!
← →
Fiona (2003-02-17 12:55) [5]Возможно автору вопроса нужна переменная в блоке threadvar
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c