C#-异步查询示例
文章速览
- CancellationTokenSource 概述
- 代码示例
坚持记录实属不易,希望友善多金的码友能够随手点一个赞。
共同创建氛围更加良好的开发者社区!
谢谢~
CancellationTokenSource 概述
使用System.Threading下的CancellationTokenSource类,进行异步操作的取消。它与 CancellationToken 配合使用,允许代码在操作不再需要继续执行时请求停止操作。
代码示例
/// <summary>
/// 状态获取 标识
/// </summary>
private CancellationTokenSource GetStateTonkenSource { get; set; }
/// <summary>
/// 状态获取Task
/// </summary>
private Task GetStateTask { get;set; }
/// <summary>
/// 停止状态获取
/// </summary>
public async void StopGetState()
{
GetStateTonkenSource.Cancel();
await GetStateTask;
GetStateTask = null;
}
/// <summary>
/// 状态获取方法
/// </summary>
public void GetStateImp()
{
if (GetStateTask != null)
{
return;
}
GetStateTonkenSource?.Dispose();
GetStateTonkenSource = new CancellationTokenSource();
GetStateTask = Task.Run(() =>
{
while (!GetStateTonkenSource.IsCancellationRequested)
{
//获取状态
//间隔10ms
Thread.Sleep(10);
}
});
}