当前位置: 首页 > 知识库问答 >
问题:

在iOS中实例化后台运行循环

魏鸿禧
2023-03-14

我有一组进程,每个进程都需要以一定的执行速率(每秒3次,每10秒一次等)在自己的后台线程上运行。

我认为CFRunLoop和/或NSRunLoop提供了此功能

如何(在swift中)创建一个新的后台线程,在其上执行定期任务?

共有2个答案

秦承安
2023-03-14

这可以通过全局调度后台队列完成。

背景线程示例

      let qualityServiceClass = QOS_CLASS_BACKGROUND
      let backgroundQueue = dispatch_get_global_queue(qualityServiceClass, 0)

        dispatch_async(backgroundQueue, {  
            print("This is run on the background queue")
            // With the help of NSTimer it will hit method after every 5 minutes (300 seconds).
            _ = NSTimer.scheduledTimerWithTimeInterval(300.0, target: self, selector: #selector(AppDelegate.callAppSettingWebservice), userInfo: nil, repeats: true)

        })
东方森
2023-03-14

旧帖子但“后台运行循环”不等于“后台线程”,也不意味着“后台队列”。通常只有一个运行循环,即主线程的运行循环。其他线程通常使用这个运行循环,但很少有自己的运行循环(或者它们各自的运行循环永远不可用)。要为非主线程的线程创建运行循环,Apple提供了一个指南,并说明了何时应该这样做。

这里还有一个很好的指南,我在后台线程中找到了运行循环。

 类似资料:
  • 本文向大家介绍在Linux中后台运行命令,包括了在Linux中后台运行命令的使用技巧和注意事项,需要的朋友参考一下 要了解何时使用Linux,一种有用的技术是在后台运行命令。有时某些命令可能要花一些时间(例如复制大文件),或者在运行时仅接管终端窗口。例如,假设您在gedit中打开文件,则可以使用以下命令。 gedit file.txt 这样做将在gedit中打开文件,但在关闭gedit之前不允许您

  • MinDoc 0.4以上版本支持在Linux和Windows上以服务的方式后台执行,命令如下: 安装服务 ./mindoc_linux_amd64 service install 卸载服务 ./mindoc_linux_amd64 service remove 执行服务安装后,会创建一个以 mindocd 为服务名的服务。 需要以管理员权限运行

  • 我有一个简单的java程序,它只是一段代码,可以从数据库中读取并根据某些条件修改数据库的内容。现在,我想要的是这个程序应该在启动时自动启动并在后台静默运行,除非有人从任务管理器中杀死它。我以前从未做过这样的事情,也不知道具体该怎么做。有人能帮我解决这个问题吗?谢谢你...

  • 问题内容: 我想使用ffmpeg在php中将视频转换为.flv。目前,我正在执行此操作,但是它会挂起浏览器,直到文件上传完毕。我一直在寻找有关如何在后台运行exec()进程的php文档,同时使用返回的PID更新进程。这是我发现的: 我还使用一个技巧来跟踪后台任务是否正在使用返回的PID运行: 我是否想创建一个单独的.php文件,然后从php cli运行以执行以下功能之一?我只需要稍微推动一下即可开

  • 本文向大家介绍Docker 在后台运行容器,包括了Docker 在后台运行容器的使用技巧和注意事项,需要的朋友参考一下 示例 要使容器在后台运行,请-d在容器启动期间提供命令行选项: 该选项-d以分离模式运行容器。它也等效于-d=true。 处于分离模式的容器停止时不能自动删除,这意味着不能将--rm选项与-d选项结合使用。

  • 我有一个函数/GUI问题。我正在编码一个轻函数,它开始一个例程,并检查时间是否在上午8点和一些停止时间之间。这个例程从早上8点开始,在那个任意的时间结束。问题是,一旦我点击这个例程的开始,图形用户界面就不会让我带着开始按钮离开窗口,因为它卡在定时例程里面了。我真的希望能够设置计时器在后台运行,然后能够离开图形用户界面的窗口。看起来线程是做到这一点的关键,但我不确定。 我将GUI代码放在一个单独的文