したがって、次のように設定されたクラスがあります。
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明確ではなかった場合に備えて、別のクラスになります。
ありがとう。