Files
test_demo/MX-PD-盘古 - new/PanGu.DieBonderApp/Mw.WorkFlow/ActivityControl.cs
Shi.Ji e31d3560bb 添加 MX-PD-盘古 项目文件
将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
2026-05-18 11:43:09 +08:00

38 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace MW.WorkFlow
{
public class ActivityControl
{
public CancellationToken CancellationToken { get; }
private readonly Func<Task> _pauseCheck;
public ActivityControl(CancellationToken cancellationToken, Func<Task> pauseCheck)
{
CancellationToken = cancellationToken;
_pauseCheck = pauseCheck ?? throw new ArgumentNullException(nameof(pauseCheck));
}
/// <summary>
/// 检查是否有取消请求,如果有则抛出 OperationCanceledException。
/// </summary>
public void ThrowIfCancellationRequested()
{
CancellationToken.ThrowIfCancellationRequested();
}
/// <summary>
/// 检查流程是否处于暂停状态,如果是则等待直到恢复。
/// 同时响应取消请求。
/// </summary>
public Task CheckPauseAsync() => _pauseCheck();
}
}