Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.052 Beiträge
 
Delphi 12 Athens
 
#9

AW: Windows message queue - Limit erreicht?

  Alt 8. Dez 2010, 21:02
Du könntest ja auf eine andere/größere Queue/Liste ausweichen?

Delphi-Quellcode:
uses SyncObjs, Generics.Collections;

var
  QueueCS: TCriticalSection;
  Queue: TQueue<THIDFeedback>;


var
  Temp: THIDFeedback;
begin
  // hid-thread
  SetLength(Temp.Data, Received);
  MoveMemory(@Temp.Data[0], Buffer, Received);
  Temp.HidCount := HidCount;
  QueueCS.Enter;
  try
    Queue.Enqueue(Temp);
  finally
    QueueCS.Leave;
  end;


  // mainthread
  QueueCS.Enter;
  try
    Found := Queue.Count > 0;
    if Found then Temp := Queue.Dequeue;
  finally
    QueueCS.Leave;
  end;
  if Found then
  begin
    // temp auswerten
  end;
Statt Record, CS und gen. Queue könnte man auch TThreadList mit Objekten nutzen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat