grand-central-dispatch 相关问题

Grand Central Dispatch(GCD)为并发和异步操作提供了一种简单而强大的机制,主要用于Apple操作系统(例如iOS,macOS,watchOS和tvOS),还有FreeBSD和MidnightBSD。

跨多个线程向 Swift 数组添加项目会导致问题(因为数组不是线程安全的) - 我该如何解决这个问题?

我想将给定的块添加到数组中,然后根据请求运行数组中包含的所有块。我有类似这样的代码: 类 MyArrayBlockClass { 私有变量blocksArray:Arra...

回答 5 投票 0

两次分派异步时未调用 iOS GCD 完成块

我的代码中的 GCD 有一个非常奇怪的情况,这是一个最小的可重现代码: - (void)runMyCode { __block BOOL 已完成 = NO; [自我 doSomethingAsyncAndCompleteOnMainThread:^{

回答 1 投票 0

在并发队列中调用sync会导致死锁吗?

我知道在串行队列中调用sync会导致死锁,例如 让serialQueue = DispatchQueue(标签:“serialQueue”) 串行队列.async { 串行队列.sync { // 死了...

回答 1 投票 0

调度源处理程序的上下文

在 Grand Central Dispatch 中,dispatch_source_set_event_handler_f 具有签名 空白 dispatch_source_set_event_handler_f(dispatch_source_t 源, void (*function)(void *));

回答 1 投票 0

我应该在自定义存储队列上使用“weak self”吗?

我知道我们在代码中直接调用DispatchQueues时可以使用strong self,例如: 函数 foo() { DispatchQueue.global().async { 打印(self.someProperty) } } 但是...

回答 1 投票 0

需要一些关于dispatch_queue_create和RunLoop的澄清。他们之间共享 RunLoop

我正在使用 Objective-C 开发 iOS 框架。 我使用dispatch_queue_create创建一个dispatch_queue_t。并调用CFRunLoopRun()来运行队列中的runloop。 但是,看起来像

回答 1 投票 0

使用 Grand Central Dispatch 进行文件监控

我正在使用 David Hamrick 的代码示例来使用 GCD 监视文件。 int fildes = open("/path/to/config.plist", O_RDONLY); dispatch_queue_t 队列 =dispatch_get_global_queue(

回答 2 投票 0

并行执行数千个操作然后等待结束

我想加快某些进程的速度,因此我编写了一个快速的 CLI 脚本,该脚本可以并行处理数千个文件,并将每个文件的处理结果写入一个文件中。 (文件的顺序确实...

回答 1 投票 0

如果我在不同的 DispatchQueue 上写入相同的变量,预期的行为是什么?

我的代码是: 进口基金会 让 q1 = 调度队列( 标签:“测试1”, 服务质量:.userInteractive, 属性:.concurrent ) 让 q2 = DispatchQueue(标签:“test-2”) 变量我 = ...

回答 1 投票 0

通过获取和 websocket 检索数据...到单个数据源中。我应该使用串行队列来确保非垃圾数据吗?

我有一个视图模型,其数据源可以更新两种方式中的一种。 有一个 func fetchData() 函数可以从服务器异步获取一些数据。 有一个单独的 WebSocket 类/管理器,这

回答 1 投票 0

“正在进行中”的异步任务的更改完成情况(Swift 并发)?

我需要处理异步任务结果。问题是,如果我在正在进行时调用它,我需要更新完成情况。 在 GCD 中,它看起来像这样: func someFunc(补全: (() -&...

回答 1 投票 0

使用 GCD 将代码转换为 Swift 中的 async/await?

我需要使用 GCD 实现的大致代码示例: func PerformTask(完成: (() -> ())?) { doSomeAsyncTask { [弱自我] isSuccess in 如果成功 { ...

回答 2 投票 0

取消dispatch_after()方法? [重复]

有没有办法取消dispatch_after()安排在未来的某个时间,并且到目前为止还没有触发? 我正在尝试制作类似调度程序的东西来从服务器进行更新,而这种方法只是......

回答 4 投票 0

如果dispatch_source_set_event_handler中的self需要弱

我有一个上传日志的计时器,代码如下: - (void)setupTimer { 如果(_timerForRecording){ dispatch_source_cancel(_timerForRecording); _timerForRecording = NULL; } ...

回答 1 投票 0

如何停止正在进行的调度组执行并开始新的调度组?

所以我有一个分页 API,每次用户进入屏幕时我都必须调用它。下面的代码工作正常,但如果说 API 调用正在进行并且用户退出并再次出现,则会出现一个问题...

回答 1 投票 0

退出使用dispatch_main()的命令行Network.framework应用程序

在多个平台上使用多种语言使用低级网络代码时,我按照 Apple 开发人员论坛中的这个示例来获取 Network.framework 示例的工作。 效果很好...

回答 1 投票 0

在应用程序或运行循环之外使用 Grand Central Dispatch

在GCD文档中很清楚,要将工作提交到主队列,您需要在NSApplication(或UIApplication)中工作或调用dispatch_main()来充当运行线程...

回答 2 投票 0

快速进行轮询的正确方法?

我对其他编程语言有很多经验,但在 swift 3 方面没有那么多经验。我想做轮询循环。这是我写的: DispatchQueue.global(qos: .userInitiated).async { ...

回答 3 投票 0

如何在调度块中使用std::atomic<bool>?

以下代码中存在 Call toimplicitly-deleted copy constructor of 'std::atomic' 错误,std::mutex 也是同样的情况。 我只能使用串行队列来进行同步吗? __block std::atomi...

回答 1 投票 0

DispatchQueue.global(qos: .background).async 和 DispatchQueue.main.async 在后台或前台时会被取消吗?

我正在使用 DispatchQueue.global(qos: .background).async 和 DispatchQueue.main.async 进行 firebase 令牌更新。但我感觉像DispatchQueue.global(qos: .background)里面写的代码块。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.