Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.08.2010, 10:51
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию Работа с TThread

Здравствуйте!
Подскажите, правильно ли работаю с потоком.
Всё в архиве MyThreand.rar
Ответить с цитированием
  #2  
Старый 09.08.2010, 12:31
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Я не спец в потоках, но мне кажется, что запись в лог стоит синхронизировать. Все-таки несколько потоков полезут в один файл на запись...по-любому что-то неприятное случится.
Ответить с цитированием
  #3  
Старый 09.08.2010, 13:06
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Спасибо, dr. F.I.N.!
Учту.
Ответить с цитированием
  #4  
Старый 09.08.2010, 16:00
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

в данном примере используется только один поток, который работает с файлом, поэтому синхронизировать нет необходимости. а вот что в мемо пишется "синхронизировано" это праильна. и еще дельфи рекомендует использовать free вместо destroy:
Цитата:
Destroys the thread object and releases the memory allocated to it.

destructor Destroy; override;

Description

Do not call Destroy in an application. Instead, use Free to destroy a thread when FreeOnTerminate is False.

Destroy signals the thread to terminate and then waits for the thread to return before calling the inherited Destroy method.
но, имхо, это не совсем удачный способ. я бы убрал вообще все Destroy, т.к. Get.FreeOnTerminate:= True; а в procedure TidHttpGet.Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
при if Terminated закрывал FidHTTP. тогда бы FidHTTP.Get просто ломался на exception.
но способов еще много есть)
Ответить с цитированием
  #5  
Старый 09.08.2010, 16:48
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Спасибо, NumLock!
Подождем еще, может, кто еще, что напишет...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter