|
#1
|
|||
|
|||
Класс и поток
Прошу помощи как начинающий.
Ниже выкладываю обобщенные фрагменты из программы. Есть класс TCSyn и поток MyThread. В потоке выполняется процедура VaChar. Скажу сразу программа компилируется без ошибок и выполняется. Но... Но когда запускается поток в процедуре VaChar при выполнении Count:= Count+1; происходит ошибка и процесс останавливается. Похоже, что поток не видит переменных описанных в классе TCSyn. Прошу подсказать как исправить это и что делал не правильно. Код:
TCSyn = class(TComponent) //TComponent Public inp : Tinp; FString : String; Сообщение Count : integer; Tek : Double; TimeTek : Double; Constructor Create(AOwner:TComponent);override; Destructor Destroy; override; procedure VaChar; Protected Private End; ------------------------------------- type MyThread=class(TThread) private{private declaration} pser: TCSyn; protected procedure execute;override; public end; var MyThr: MyThread; ------------------------------------------------------------------------- procedure MyThread.execute; var S: string; i:integer; begin Synchronize(pser.VaChar); end; ------------------------------------------------------------------------ procedure TCSyn.VaChar; var S:String; begin Count:= Count+1; end; |