![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Синхронизация [D6, WinXP]
Mr tray © (2006-08-27 13:46:00)Здравствуйте! У меня есть обычная оконная программа с одним окном. У формы этой есть переменная mt:tmythread (tmythread = class (TThread)). У mt есть свойство, которое нужно изменить (желательно немедленно), дав команду об этом из одного из методов моей главной формы. Как это осуществить? Спасибо.
Ketmar (2006-08-27 22:01:00) [21]лучше TMultiReadExclusiveWriteSynchronizer.
Пусик (2006-08-27 21:54:00) [22]
TMyThread=class(TThread)
private
FCriticalSection: TCriticalSection;
FField: TString;
procedure SetField(const Value: String);
function GetField: String;
protected
procedure Execute; override;
public
property Field: String read GetFField write SetFField;
end;
procedure TMyThread.SetFField(const Value: String);
begin
FCriticalSection.Enter;
try
FField := Value;
finally
FCriticalSection.Leave;
end;
end;
function TMyThread.GetFField:String;
begin
FCriticalSection.Enter;
try
Result := FField;
finally
FCriticalSection.Leave;
end;
end;
Anatoly Podgoretsky (2006-08-27 14:07:00) [23]А если вчитаться, то у него вообще одновременно и окна и формы и черт знает еще что
Мефисто (2006-08-27 14:03:00) [24]
> Anatoly Podgoretsky © (27.08.06 13:58) [2]
Если вчитываться в вопрос, то:
Property или Synchonize? Вот в чем вопрос :)
Anatoly Podgoretsky (2006-08-27 13:58:00) [25]У TThread есть метод Synchonize
Мефисто (2006-08-27 13:50:00) [26]
> У mt есть свойство, которое нужно изменить (желательно немедленно),
> дав команду об этом из одного из методов моей главной формы.
>
Раз свойство уже есть так и изменяй. В чем проблема то?
Т.к. телепаты в отпуске обясни задачу шире или код приведи.