データを含むさまざまなメッセージを送信するタスクがあります。
例えば:
task.Comm.Send(MSG_JOB_ERROR,[string, string,string,string,string, TObject]) ;
受信側で私が持っている
procedure TUDPBroadCast.OnWorkerJobError(var msg: TOmniMessage);
var
s : String ;
begin
try
s := 'TASK: ' + msg.MsgData.AsArrayItem[0].AsString + ', IP: ' +
msg.MsgData.AsArrayItem[1].AsString + ', PORT: ' +
msg.MsgData.AsArrayItem[2].AsString +
', DATA: ' + msg.MsgData.AsArrayItem[3].AsString + ', REPLY: '+
msg.MsgData.AsArrayItem[4].AsString ;
Xlog('JOB ERROR > ' + s, 'UDPBroadCast') ;
processworkobject(msg.MsgData.AsArrayItem[4].AsObject) ;
finally
msg.MsgData.Clear ;
end;
end;
しかし、MsgData.Clear がすべてのメモリの割り当てを正しく解除するとは思えません。
TomniValue の割り当て解除の正しい処理は何ですか?