Metro 风格应用程序中的任务
Task in metro style application
我有一个关于 Task in metro style applications (winrt) 的问题。
Thread 不可用(至少从 windows 8.1/windows phone 8.1 开始),因此要执行异步操作,我们现在必须使用 Task。
当我创建任务并调用 运行 时,它会创建新线程吗?如果是这样,有没有办法kill/stop那个线程?
所有任务都是应用程序的一部分 - 所以当我调用 Application.Current.Exit() 时它会停止所有任务(以防我没有正确地 stopped/closed/ended 它们吗?)如果不可能吗?在线程中,您可以设置 IsBackground 属性 以在应用程序关闭时强制关闭它们。
当应用程序挂起时,Tasks 会发生什么情况?什么是准则?
感谢您的帮助。
When I create Task and call Run does it create new Thread? If so is there a way to kill/stop that Thread?
它不会创建新线程,它会使用线程池中的一个线程。这是假设您没有通过任何其他 TaskScheduler
.
If so is there a way to kill/stop that Thread?
有一种方法可以通过 CancellationToken
和 CancellationTokenSource
结构进行协作取消。无法中止 Task
,例如 Thread.Abort
。 Task != Thread
.
so when I call Application.Current.Exit() does it stops all Tasks
Threadpool 线程默认是后台线程,它们不会像前台线程那样延长应用程序的生命周期。您可以安全地假设一旦应用程序关闭,所有线程都将终止。
我有一个关于 Task in metro style applications (winrt) 的问题。
Thread 不可用(至少从 windows 8.1/windows phone 8.1 开始),因此要执行异步操作,我们现在必须使用 Task。
当我创建任务并调用 运行 时,它会创建新线程吗?如果是这样,有没有办法kill/stop那个线程?
所有任务都是应用程序的一部分 - 所以当我调用 Application.Current.Exit() 时它会停止所有任务(以防我没有正确地 stopped/closed/ended 它们吗?)如果不可能吗?在线程中,您可以设置 IsBackground 属性 以在应用程序关闭时强制关闭它们。
当应用程序挂起时,Tasks 会发生什么情况?什么是准则?
感谢您的帮助。
When I create Task and call Run does it create new Thread? If so is there a way to kill/stop that Thread?
它不会创建新线程,它会使用线程池中的一个线程。这是假设您没有通过任何其他 TaskScheduler
.
If so is there a way to kill/stop that Thread?
有一种方法可以通过 CancellationToken
和 CancellationTokenSource
结构进行协作取消。无法中止 Task
,例如 Thread.Abort
。 Task != Thread
.
so when I call Application.Current.Exit() does it stops all Tasks
Threadpool 线程默认是后台线程,它们不会像前台线程那样延长应用程序的生命周期。您可以安全地假设一旦应用程序关闭,所有线程都将终止。