获取线程id并终止线程

本文关键字:线程 终止 id 获取 | 更新日期: 2023-09-27 18:30:12

我有一个异步方法,可以在同一时间运行多次。此方法执行对服务器的调用,因此需要一些时间才能完成。我希望每次调用此方法的实例时都停止执行在同一时间运行的同一方法。我正在考虑创建一个线程id列表,每次调用该方法时,为执行该方法的旧实例而创建的线程都将终止。

因此,我要寻找的是一种获取特定方法运行的当前线程id的方法,以及使用其id终止线程的方法。

PS。我已经检查了所有关于查找线程id等的帖子,但这些都不适用于UWP。

获取线程id并终止线程

UWP中,您没有控制线程的能力。但你肯定可以控制任务,例如,如果需要,可以使用CancellationToken:取消任务

CancellationTokenSource tokenSource = new CancellationTokenSource();
await Task.Run(() =>
{
    // your job here
}, tokenSource.Token);
// then if you want to cancel the job use tokenSource:
tokenSource.Cancel();

请注意,这只是将CancellationTokenTask一起使用的一个简单示例。运行,但大多数异步方法都使用这些令牌,甚至您可以将它们转换为将使用一个令牌的Task。

有关任务取消的更多信息,请访问MSDN、Stephen Cleary的博客等。