TThreadedQueueの使い方について
参考としてメモしたいから
めっちゃわかりやすく組んでみました
ユニットファイル
uses
System.Generics.Collections ;
宣言
public
received_queue: TThreadedQueue<string>;
Create
received_queue := TThreadedQueue<string>.Create(1000, 100, 100);
Push(受け取る)
ボタンでデータを送信
ここは分かりやすく作りたいためボタンを使用していますが
一般的な?使い方は外部からデータを受け取る方がよく使われると思います
例えばComからデータを受け取るとか
procedure TForm1.Button1Click(Sender: TObject);
var
dt:TDateTime;
str:string;
begin
dt:=Now;
DateTimeToString(str, 'yyyy-MM-dd HH-mm-ss',dt);
received_queue.PushItem(str);
end;
Pop(取り出す)
procedure TForm1.Timer1Timer(Sender: TObject);
var
str : String;
begin
while received_queue.PopItem(str) = wrSignaled do
begin
(処理)
Memo1.Lines.Add(str);
end;
end;
終了処理
received_queue.DoShutDown; //シャットダウン
while not received_queue.ShutDown do;//シャットダウン待ち
received_queue.Free;//解放