лог в файл в многопоточном приложении

Тема в разделе "Delphi - Система", создана пользователем Limb, 23 янв 2004.

Статус темы:
Закрыта.
  1. Limb

    Limb Гость

    есть многопоточное приложение, которое в настоящий момент находится в стадии отладки и интенсивно пишет в файл логи
    подскажите плиз, какой из способов синхронизации доступа к файлу будет эффективнее?
    я использую критическую секцию, но мне кажется что работает медленно, вот код, который пишет в файл:
    procedure LogFile_(Msg:String);
    begin
    if(Log_FileName = '')then exit;
    if not Assigned(LogCS) then LogCS:=TCriticalSection.Create;
    LogCS.Enter;
    {$I-}
    try
    AssignFile(Log_FileHandle, Log_FileName);
    Append(Log_FileHandle);
    if(IOResult <> 0)then Rewrite(Log_FileHandle);
    if(IOResult = 0)then WriteLn(Log_FileHandle,
    MyTimeToStr(GetTime())+' ThrID:'+IntToStr(GetCurrentThreadID())+' '+Msg);
    CloseFile(Log_FileHandle);
    finally LogCS.Leave;
    end;
    {$I+}
    end;

    может быть вообще стоит отказаться от файлов? правда если писать в eventlog, потом смотреть неудобно - чтоб посмотреть description на каждую запись кликать надо
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей