gpt4 book ai didi

c# - 在 iOS 上。当应用程序被发送到后台时,该应用程序是否仍在同一个 UI 线程上运行,或者是否被移动到新的不同线程

转载 作者:行者123 更新时间:2023-11-29 00:04:27 25 4
gpt4 key购买 nike

在 iOS 上。当应用程序被发送到后台时,该应用程序是否仍在同一个 UI 线程上运行,或者是否被移动到新线程?

最佳答案

在进入后台状态时,为您的应用分配的 iOS 线程池不会改变(当然它们已暂停)。

您可以通过检查 NSThread.Current 查看您当前所在的线程。

示例:

  • 如果您查看 DidEnterBackground 中的线程,是的,它是 main 线程。

  • 后台获取 (PerformFetch) 将在线程上进行。

  • 基于后台的位置更新在线程上。

switch (UIApplication.SharedApplication.ApplicationState)
{
case UIApplicationState.Background:
Console.WriteLine($"Background location update {NSThread.Current}");
break;
case UIApplicationState.Active:
Console.WriteLine($"Foreground location update {NSThread.Current}");
break;
}

Location[16904:1947553] Foreground location update <NSThread: 0x60000006d900>{number = 1, name = main}
Location[16904:1947553] Foreground location update <NSThread: 0x60000006d900>{number = 1, name = main}
Location[16904:1947553] Foreground location update <NSThread: 0x60000006d900>{number = 1, name = main}
Location[16904:1947553] App entering background state.
Location[16904:1947553] Now receiving location updates in the background
Location[16904:1947553] Background location update <NSThread: 0x60000006d900>{number = 1, name = main}
Location[16904:1947553] Background location update <NSThread: 0x60000006d900>{number = 1, name = main}

关于c# - 在 iOS 上。当应用程序被发送到后台时,该应用程序是否仍在同一个 UI 线程上运行,或者是否被移动到新的不同线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48521192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com