したがって、次のように設定されたクラスがあります。
public class NetworkServer
{
private BlockingCollection<byte[]> receivingQueue;
public NetworkServer(IPEndPoint endpoint, int packetsize)
{
receivingQueue = new BlockingCollection<byte[]>(new ConcurrentQueue<byte[]>());
// Do some other stuff here
}
public ~NetworkServer()
{
// Do some stuff here
Task.Factory.StartNew(() => Parallel.ForEach<byte[]>(receivingQueue, item => SomeOtherClass.ParseItem(item)));
}
}
デストラクタで を使用すると、 のインスタンスがガベージ コレクションされる可能性がTask.Factory.StartNew
ある場合でも、実行を継続する新しいスレッドが作成されるかどうか疑問に思っていました。NetworkServer
これがうまくいかない場合、新しいスレッドでこれらの各アイテムを解析する/のインスタンスNetworkServer
が GC された後にアイテムを解析する最良の方法は何でしょうか。また、ParseItem
明確ではなかった場合に備えて、別のクラスになります。
ありがとう。