Windows mobile UWP/Windows 10 mobile中的System.Threading.Thread替换

Windows mobile UWP/Windows 10 mobile中的System.Threading.Thread替换,windows-mobile,uwp,Windows Mobile,Uwp,在UWP中,如何访问线程对象?我想更改我将管理的主线程和附加线程的名称 我还想检查当前线程是否是主线程 我的目标是Windows10Mobile。以下代码示例适用于桌面,但不适用于电话(获取'System.DllNotFoundException'): 谢谢。您应该使用任务而不是线程。 关于线程的重命名,你能告诉我为什么需要重命名主线程和其他线程吗 在UWP中,您应该研究如何使用来自的类。但是,您会注意到有一个线程池,但没有线程类的直接等价物 请记住,UWP不允许您只创建一个线程并让它永远运行

在UWP中,如何访问线程对象?我想更改我将管理的主线程和附加线程的名称

我还想检查当前线程是否是主线程

我的目标是Windows10Mobile。以下代码示例适用于桌面,但不适用于电话(获取'System.DllNotFoundException'):


谢谢。

您应该使用任务而不是线程。


关于线程的重命名,你能告诉我为什么需要重命名主线程和其他线程吗

在UWP中,您应该研究如何使用来自的类。但是,您会注意到有一个线程池,但没有线程类的直接等价物

请记住,UWP不允许您只创建一个线程并让它永远运行是有原因的。这会很容易耗尽电池电量,但也会妨碍应用程序暂停


UWP有许多机制,允许您执行在其他平台上可能通过使用专用线程解决的事情。如果您告诉我们为什么需要线程,我们可以帮助您解决实际问题?

您应该尝试System.Environment.CurrentManagedThreadId(是的,您只能获取当前线程id)

我们在博客中详细介绍了这一点(因为我们觉得这是.NET标准碎片化的一个不受欢迎的开始),并发布了一个针对UWP/UAP 10的开源
System.Threading.Thread
实现,以及


我希望这能有所帮助。

是的,谢谢,在问这个问题之前,我已经看过任务了。我的应用程序有一个固定的工作线程。据我所知,任务是针对单个异步操作的。真的没有办法处理线程吗?任务不仅仅针对单个异步操作。您可以将任务用作线程。实际上,在任务下面是线程。所以试着从线程切换到任务。您可以启动一个任务,以后可以启动其他任务。您不需要等到任务结束,只需启动并忘记它,而是提供一些机制让任务优雅地完成。为此,您可以使用任务取消令牌。Ray,看看这个博客:它在那里声明:“由于任务仍在线程池上运行,因此它们不应用于长时间运行的操作,因为它们仍然可以填充线程池并阻止新工作。相反,Task提供了一个LongRunning选项,它将告诉TaskScheduler启动一个新线程,而不是在线程池上运行。“最终,我需要一个在应用程序生命周期中保持活力的线程。也许用LongRunning选项创建任务是一种方法……您误解了。我不是拒绝使用它们。感谢您的回答,我正在结合我的建议检查此解决方案。正如我前面所述,我最终使用了长时间运行的任务。谢谢不幸的是,其中不包括ThreadPool(使用了专用的ThreadPool,但做了一些小改动)
[DllImport("kernel32.dll")]
static extern IntPtr GetCurrentThread();