以下のような BlockingCollection を使用しようとしていますが、それがスレッド セーフなどに適していることを確認したかっただけです。何かに CancellationTokenSource が必要かどうか疑問に思っていました。
ありがとう
public class MyApp
{
private BlockingCollection<int> blockingCollection;
public void Start()
{
blockingCollection= new BlockingCollection<int>();
var task = Task.Factory.StartNew(ProcessData);
}
public void Add(int value)
{
blockingCollection.Add(value); //This is a thread that receives input
}
private void ProcessData()
{
foreach(var item in blockingCollection.GetConsumingEnumerable())
{
...
}
}
public void Finish()
{
blockingCollection.CompleteAdding();
}
}