private CancellationTokenSource cancelToken = new CancellationTokenSource();
/// <summary>
/// 停止线程
/// </summary>
private void CancelTask()
{
cancelToken.Cancel();
}
private void ProcessFiles()
{
ParallelOptions parOpts = new ParallelOptions();
parOpts.CancellationToken = cancelToken.Token;
parOpts.MaxDegreeOfParallelism = System.Environment.ProcessorCount;
string[] data = new string[100000];
int index = 1;
Parallel.ForEach(data, parOpts, item => {
parOpts.CancellationToken.ThrowIfCancellationRequested();
System.Console.WriteLine(index + " : " + item);
index++;
});
}