线程的取消
private static CancellationTokenSource tokenSource = new CancellationTokenSource();
private void simpleButtonStart_Click(object sender, EventArgs e)
{
if (tokenSource.Token.IsCancellationRequested)
{
tokenSource = new CancellationTokenSource();
}
Task.Factory.StartNew(obj =>
{
AutoJobService.Instance.StartProcess(tgzQueue);
}, tokenSource.Token, TaskCreationOptions.LongRunning);
}
private void Instance_ProcessedEventHandler(object sender, EventArgs e)
{
if (this.IsHandleCreated)
{
this.BeginInvoke((EventHandler)delegate
{
var token = tokenSource.Token;
if (token.CanBeCanceled && !token.IsCancellationRequested)
{
tokenSource.Cancel();
}
});
}
}