问题标签 [operationqueue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
84 浏览

swift - 使用 OperationQueue 时更新 UI

我有一个操作队列设置如下:

在我的ViewController我收听通知并UILabel用百分比更新 a。问题是虽然我没有得到任何中间值......它从0直接跳转到100所有操作完成后。

我究竟做错了什么?

谢谢

0 投票
1 回答
88 浏览

swift - 如何为不同的 CKDatabase 排队 CKOperations

我创建了 2 个操作,比如说 CKModifySubscriptionsOperation。一个用于私有数据库,另一个用于共享数据库。我可以通过添加到 OperationQueue 来将它们排队,每个下一个都将在上一个完成块之后开始。

但我需要从不同的数据库中执行一些操作(获取、修改等),但仍需要将它们排队。这是我向数据库添加操作的方法。如何将它们放入单个队列但仍让它们分别进入所需的数据库?

0 投票
0 回答
98 浏览

swift - Swift 中 OperationQueue 上可用但不可用的函数

MacOS Swift 项目,但适用于 iOS。我的目标是 10.14

我有一个操作队列。我想安排一个操作稍后运行。够简单...

可用 10.9

我得到错误'schedule(after:interval:tolerance:options:_:)' is only available in macOS 10.15 or newer

我追查到要结合的,这似乎掩盖了默认实现。

Xcode 文档的屏幕截图

0 投票
1 回答
67 浏览

swift - 在 OperationQueue 中打印 1 到 10 不打印整数

我正在研究组合调度程序,我有来自 Raywenderlich 书中的示例代码

这本书解释了 OperationQueue 使用所有可用的线程,因此打印顺序和线程可以是随机的。我理解那部分,但是当我在操场上运行这段代码时,我只看到 10 个数字中的 5 个。

为什么该代码不显示所有 10 个数字?

0 投票
1 回答
54 浏览

ios - 子类化 OperationQueue 添加睡眠期

requestDataOperation每隔 10 秒将函数放入一个计时器中。我有一个按钮可以scheduleSleep手动调用。当我点击按钮时,我预计每隔 5 秒就会对请求进行去抖动处理。

但我得到这样的东西:

自上次点击后如何增加 5 秒并将其组合在一起而不是将其分成两个操作?我打电话queue.cancelAllOperations 并开始新的睡眠操作,但似乎不起作用。

预期结果:

0 投票
0 回答
35 浏览

ios - 尝试在后台使用 AWSS3TransferUtility 将多个文件上传到 AWS

我在我的应用程序中有一个情况,我需要上传几个文件,范围从 10-50+-(小尺寸,约 5 mb),并且如果需要还需要支持在后台继续。此时,我可以在应用程序处于前台时完美上传,但一旦应用程序进入后台,当前正在运行的上传将继续运行并在后台完成,但由于某种原因,其余操作永远不会被调用。

这是我的代码

后台队列初始化:

后台队列设置:

创建操作:

添加操作:

在 AppDelegate 中,我添加了以下代码:

0 投票
1 回答
44 浏览

swift - 为操作队列中的函数编写 xctest

我有一个如下函数,它将操作添加到操作队列,我如何测试添加到操作队列的代码块,我尝试通过传递分析观察者间谍来使用期望并检查值是否设置但它似乎不起作用,请指出我正确的方向

0 投票
0 回答
92 浏览

swift - 如何将 OperationQueue 与异步函数一起使用?

我需要运行几个函数,函数的执行顺序非常重要。我有两个需要运行的非异步函数,然后是两个需要在此之后执行的异步函数。所有功能必须在前一个功能完成后执行。

到目前为止,我有以下内容。但是,异步函数似乎不遵循我已经列出的依赖关系。一旦队列开始,两个异步函数都会执行。

有什么我想念的吗?任何帮助表示赞赏!:)

0 投票
1 回答
75 浏览

swift - 从actor内部的operationQueue中发布`operationCount`?

我有一个演员:

我试图让 KVO 然后触发某种类型的发布者调用,应用程序中的其他模型可以订阅并在 operationCount 更改时根据需要做出反应。

我将有一个可能会设置它的函数,但是,截至目前,self在该初始化程序中使用会给我这个警告,根据这个:

https://forums.swift.org/t/proposal-actor-initializers-and-deinitializers/52322

它很快就会变成一个错误。

我得到的警告是这样的:

Actor 'self' 只能被异步初始化器的闭包捕获

那么,我如何触发发布者,然后其他模型可以对其做出反应,从而在操作队列operationCount发生变化时发布操作队列?

0 投票
0 回答
91 浏览

ios - iOS:无法通过日期更改触发的 OperationQueue.schedule(after: Date)

问题

自设置回调日期以来至少经过 X 时间时,我需要获得回调。

示例 1:这会很好用,但是可以通过将日期设置为早于现在的正确时间来触发块的执行:

另一方面,从这个答案中获取当前正常运行时间的解决方案效果很好,但它需要不断运行计时器来检查我们是否接近最新状态。

是否可以将这两种方法结合起来并以某种方式“附加”一个回调KERN_BOOTTIME,以便操作系统在boottime达到某个值时调用我的方法?

我也在寻找满足两个标准的替代工程解决方案:

  1. 应该不可能通过将设备日期重置为过去的某个任意值来触发回调
  2. 如果设备已进入睡眠状态(例如通过按下开/关侧按钮),时钟仍应“滴答作响”,以便在应用程序在后台运行时回调该方法。

更多细节:

  • 后台/应用程序终止超出范围
  • 要点是通过在设置中向后切换日期来防止绕过。