![]() |
|
|
Регистрация | << Правила форума >> | 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); ну или как там Пишу программы за еду. __________________ |