次の機能を持つWindowsサービスとしてホストされているwcfサービスがあります。
public int SendMultipleMessages(List<Message> messages)
{
foreach (var message in messages)
{
//Do some stuff with the messages ie. get an id to return, save info in a db.
}
//Would it make sence to collect here ??
Gc.Collect();
Task.Factory.StartNew(() =>
{
//very time demanding task
_sendRequestHandler.SendMultipleMessages(BatchId);
});
return BatchId;
}
List <Message>オブジェクトは(ほとんどの場合)最大1 GBのメモリを使用しますが、GCを呼び出すのは理にかなっています。リストを使用しなくなったため、このような状況で収集するか、ガベージコレクターに許可する必要があります。これを自分で処理しますか?