using System.Threading;
using System.Threading.Tasks;
namespace PCL.Core.App.Tasks;
///
/// 任务状态改变事件
/// 当前状态,将影响日志和 UI 显示效果
/// 状态消息
///
public delegate void TaskStateEvent(TaskState state, string message);
///
/// 响应式任务接口
/// NOTE: 为确保运行时响应式模型的 hash 映射正常工作,若无特殊需求,请勿重写对象相等性实现如
/// 与 !
///
public interface ITask
{
///
/// 任务标题
///
public string Title { get; }
///
/// 运行任务
///
/// 取消令牌
public Task ExecuteAsync(CancellationToken cancelToken = default);
///
/// 任务状态改变事件
///
public event TaskStateEvent StateChanged;
}