![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
А как работают с переменными в потоках? Допустим многопоточный постер, для постинга нужна инфа из тела страницы. Обычно - выдираю её в переменную и потом использую. Но ведь при мультипоточном постинге нужно столько таких переменных как и количество потоков? Или нет?
|
|
#2
|
||||
|
||||
|
Код:
type
TPoster = class(TThread)
private
Post: string;
protected
procedure Execute; override;
end; |
|
#3
|
|||
|
|||
|
Спасибо!
![]() |
|
#4
|
||||
|
||||
|
ну если потоки только читают значение из переменной, то можно обойтись и одной. а если еще и изменяют, то есть несколько способов синхронизации. в данном случае самый простой использовать критическую секцию, имхо.
|
|
#5
|
|||
|
|||
|
Хорошо. А вот такой вопрос. Есть несколько функций. Как их заставить работать в потоке?
Пробую так: Код:
TNewThread = class(TThread)
private
...
protected
procedure Execute; override;
public
procedure Sync;
function ParseSid(s:string):string;
function ParseLink(s:string):string;
function ParseReload(s:string):string;
constructor Create(CreateSuspended: Boolean);
end;Выдаёт ошибку: Incompatible types: 'TComponent' and 'TNewThread' Ошибки возникают на строках: Reg := TRegExp.Create(Self); |
|
#6
|
||||
|
||||
|
-вызывать их в методе Execute
-смотреть конструктор класса TRegExp. могу лишь предположить (TRegExp не знаю такого) что: TRegExp = class(TComponent) в то время как: TThread = class(TObject) ну и тогда: Reg := TRegExp.Create(Form1); ну или как там |