Текущий архив: 2006.10.08;
Скачать: CL | DM;
ВнизПотоко-безопасная запиcь в файл. Найти похожие ветки
← →
Павел_ (2006-09-20 03:32) [0]Помогите. Никак не могу понять:
нужно ли использовать критические секции при следующем способе
записи в файл из разных нитей ?function FileAddStringCS(pFile, pValue: PChar; var _CS: RTL_CRITICAL_SECTION): DWord;
begin
Result:=0;
EnterCriticalSection(_CS);
try
FileAddString(pFile, pValue); // Пишет строку в файл
ReallocMem(pValue, 0);
finally
LeaveCriticalSection(_CS);
end;
end;
function FileAddStringThread(pValue: PChar): DWord;
begin
Result:=FileAddStringCS(PChar(TestFile), pValue, ERR_CS);
end;
function StringToPChar(const Sour: string): PChar;
begin
Result:=GetMemory(Length(Sour) + 1);
CopyMemory(Result, PChar(Sour), Length(Sour)+1);
end;
procedure FileAddStringEx(const Mess: string);
var
ThreadHand, ThreadID: DWord;
begin
try
ThreadHand:=BeginThread(nil, 0, @FileAddStringThread,
StringToPChar(Mess), 0, ThreadID);
if ThreadHand <> 0 then CloseHandle(ThreadHand);
finally
end;
end;
← →
Leonid Troyanovsky © (2006-09-20 09:12) [1]
> Павел_ (20.09.06 03:32)
> нужно ли использовать критические секции при следующем способе
> записи в файл из разных нитей ?
Критическая секция здесь вовсе нелишняя.
В отличии от много остального.
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2006-09-20 14:27) [2]Можно обойтись эксклузивным открытием файла. Но можно воспользоваться TMultiReadExclusiveWriteSynchronizer.
Страницы: 1 вся ветка
Текущий архив: 2006.10.08;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.045 c