Форум: "Система";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизОчередь сообщений Найти похожие ветки
← →
Прямой (2004-03-31 17:01) [0]Как увеличить размер виртуальной очереди сообщений для приложения? Можно ли такое?
← →
Digitman © (2004-03-31 17:18) [1]это о какой очереди идет речь ? об очереди сообщений, создаваемой для каждого потока системой ? неужто до "дна" добрался ?! ..эт ведь умудриться нужно) ...
если тебе стали малы эти "штаны", следует немедленно "умерить аппетит", сесть на диету и пересмотреть алгоритмы своей программы - они некорректны, если не сказать не верны ...
← →
Прямой (2004-03-31 18:08) [2]Аппетиты у меня немерянные по жизни.
Моя прога пишет лог в один файл, данные из многих потоков, которые породило главное окно приложения.
Данные пишутся не так быстро как приходят лог данные.
Данные приходят SendMessagами главному окну с указателем на строку, которая должна быть помещена в лог.
Через часа четыре прога отваливается нафиг. Нигде следов не оставляет. DrWatson курит.
← →
Digitman © (2004-03-31 18:18) [3]
> данные из многих потоков, которые породило главное окно
> приложения
опа !!! приехали !! оказывается, "окно" порождает "поток" ...
дальше беседовать, кажется, не имеет смысла ...
← →
Digitman © (2004-03-31 18:22) [4]я-то, чукча, всю свою сознательную программерскую жисть думал, что кодовый поток в ходе исполнения инструкций создает (порождает, если угодно) окно, и отныне окно принадлежит контексту код.потока .. но уж никак не наоборот ..
все.. на пенсию пора))
← →
Digitman © (2004-03-31 18:34) [5]
> Данные приходят SendMessagами главному окну
нахрена ? ну нахрена, спрашивается, "толкать" безразмерную кучу сообщений в очередь далеко не резинового код.потока, которому принадлежит окно ?
крит.секции что, уже отменили, да ? ведь именно они ориентированы на синхронизацию доступа к неразделяемому ресурсу со стороны множества код.потоков, работающих в контексте одного и того же процесса !!
← →
Прямой (2004-03-31 18:35) [6]Мда, похоже форумом ошибся. Только языком.
Отклячиваюсь от форума нафиг.
← →
Digitman © (2004-03-31 18:38) [7]кр.того, если уж приспичило организовать лог именно таким образом, почему не организовать в каждом потоке цикл отправки лог-сообщения ? возможно даже не по Sendmessage, а по SendMessageTimeout ? с проверкой Result"а как условия выхода из цикла ?
← →
Digitman © (2004-03-31 18:39) [8]
> Прямой
что ж ... если не расположен к диалогу - "отклячивайся" ..
"баба с возу - ..", как говорится
← →
Digitman © (2004-03-31 18:44) [9]
> размер виртуальной очереди сообщений для приложения
у приложения (точнее - у процесса) - куча таких очередей ..
возможно - по одной на каждый код.поток в контексте процесса
и то не обязательно - система создает очередь сообщений по первому же явному требованию код.потока
← →
Slym © (2004-04-01 04:35) [10]Digitman понимаю... ламеры достали? код не привели... начали объясняться с "жопы" (с борьбы со следствиями не ища причин)
Но человек висит в поиске...
Во первых ты делаешь PostMessage!!! (асинхронно) можно ведь синхронно SendMessage!
или делай для потоков разделяемый ресурс!
типа
TLogger=class
pivate
CriticalSection:TCriticalSection;
public
constructor
destructor
procedure LogMessage(str:string);
end
procedure TLogger.LogMessage(str:string);
begin
CriticalSection.Enter;//Синхронизация
WriteFile();
finally
CriticalSection.Leave;
end;
end;
прим:
TThrtead.Create(Logger:TLogger;Suspend:boolean);//сделай reintroduce метода
begin
FLogger:=Logger;
inherited Create(Suspend);
end;
TThrtead.Execute;
begin
while true do
begin
doit
Logger.LogMessage("Im do it!!!")
end;
end;
← →
nikkie © (2004-04-01 17:42) [11]Windows 2000: There is a limit of 10,000 posted messages per message queue. This limit should be sufficiently large. If your application exceeds the limit, it should be redesigned to avoid consuming so many system resources. To adjust this limit, modify the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\USERPostMessageLimit.
The minimum acceptable value is 4000.
(MSDN, PostThreadMessage)
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c