Я хочу писать из нескольких потоков/процессов в TListBox с именем listMessages, и для этого у меня есть две процедуры:
1- С добавлением объекта:
procedure Log(Msg: String; Color: TColor);
begin
listMessages.Items.AddObject(Msg, Pointer(Color));
listMessages.ItemIndex := listMessages.Items.Count -1;
end;
2- С TIdCriticalSection с именем protectListMessages:
procedure TMainForm.safelyLogMessage(mess : String);
begin
protectlistMessages.Enter;
try
listMessages.Items.Add(mess);
listMessages.ItemIndex := listMessages.Items.Count -1;
finally
protectListMessages.Leave;
end;
end;
Можете ли вы сказать мне, что лучше (быстрый + потокобезопасный) или показать мне третий способ писать сообщения в мой TListBox из моих потоков/процессов?
Synchronize()
, чтобы обеспечить правильный контекст потока. - person Disillusioned   schedule 03.07.2014