获取线程 ID 并终止线程
Get thread id and terminate thread
我有一个异步方法可以同时 运行 多次。此方法执行对服务器的调用,因此需要一些时间才能完成。我希望每次调用此方法的实例时都停止执行 运行 相同的方法。我正在考虑创建一个线程 ID 列表,每次调用该方法时,为执行该方法的旧实例而创建的线程将被终止。
所以我正在寻找的是一种获取特定方法 运行ning 来自的当前线程 ID 的方法,以及使用其 ID 终止线程的方法。
PS。我已经检查了所有关于查找线程 ID 等的帖子,但是 none 这些在 UWP 中工作。
在 UWP 中,您无法控制线程。但是您当然可以控制任务,例如,如果需要,可以使用 with 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();
请注意,这只是将 CancellationToken 与 Task.Run 一起使用的简单示例,但大多数异步方法都使用这些令牌,甚至您可以将它们转换为将使用一个的任务。
有关任务取消的更多信息,您会发现 at MSDN, Stephen Cleary's blog 等等。
我有一个异步方法可以同时 运行 多次。此方法执行对服务器的调用,因此需要一些时间才能完成。我希望每次调用此方法的实例时都停止执行 运行 相同的方法。我正在考虑创建一个线程 ID 列表,每次调用该方法时,为执行该方法的旧实例而创建的线程将被终止。
所以我正在寻找的是一种获取特定方法 运行ning 来自的当前线程 ID 的方法,以及使用其 ID 终止线程的方法。
PS。我已经检查了所有关于查找线程 ID 等的帖子,但是 none 这些在 UWP 中工作。
在 UWP 中,您无法控制线程。但是您当然可以控制任务,例如,如果需要,可以使用 with 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();
请注意,这只是将 CancellationToken 与 Task.Run 一起使用的简单示例,但大多数异步方法都使用这些令牌,甚至您可以将它们转换为将使用一个的任务。
有关任务取消的更多信息,您会发现 at MSDN, Stephen Cleary's blog 等等。