C# 中一个可取消的延时操作
本人开发cocos creator 开发游戏比较多,进来使用C#总是觉得延时操作怎么处理。不能每个地方都用定时器来处理吧。
经过查一些资料发现,C#中是有这些功能的。简单做了一个demo
private Thread m_th = null;
private CancellationTokenSource m_cts = new CancellationTokenSource(2000);
void openDialog()
{
//this.dialog.ShowDialog(nameof(AlertControl), null, null, nameof(AlertWindow)) ;
//this.dialog.ShowDialog(nameof(AlertControl));
if (m_th == null)
{
m_th = new Thread(new ThreadStart(checkWork));
m_th.IsBackground = true;
m_th.Start();
}
else
{
m_cts.Cancel();
Console.WriteLine("取消任务");
}
}
private async void checkWork()
{
try
{
Console.WriteLine("start");
await Task.Delay(1000 * 5,m_cts.Token);
Console.WriteLine("end");
}
catch (OperationCanceledException ex)
{
Console.WriteLine("Cancelled ======= ");
}
}
以上示例就能够执行一个延时操作,同时能够,随时取消。
很赞哦! (0)