Во-первых, вы должны использовать токены отмены . В своей работе передайте объект IJobCancellationToken в качестве аргумента вместе с другими аргументами:
public void MyJob( <<other args>>, IJobCancellationToken cancellationToken)
{
for (var i = 0; i < Int32.MaxValue; i++)
{
cancellationToken.ThrowIfCancellationRequested();
Thread.Sleep(TimeSpan.FromSeconds(1));
}
}
Чтобы поставить в очередь свою работу, передайте IJobCancellationToken значение null:
string jobID = BackgroundJob.Enqueue(() => MyJob(<<other args>>, JobCancellationToken.Null));
Теперь, чтобы отменить и удалить работу, сделайте это с помощью кода:
BackgroundJob.Delete(jobID);