cost 102 ms
如何確保 OperationQueue 任務總是在后台(全局)線程上快速執行?

[英]How to make sure that OperationQueue tasks are always getting executed on background(global) thread in swift?

我在描述OperationQueue的流程時遇到了非 iOS 開發人員的問題。 我們已經知道,使用OperationQueue ,我們可以啟動盡可能多的線程,以同步/異步方式執行任務。 但實際上,有些人希望證明OperationQueue是在后台執行的,而不是使用 UI(主)線程。 我只是想證明, ...

如何中斷 Thread.sleep。 備擇方案?

[英]How to interrupt Thread.sleep. Alternatives?

我已經在 OperationQueue 上實現了一個操作。 triggerRestEvent函數實際上是在調用Thread.sleep 。 一旦睡眠過期,我們就會檢查isCancelled 。 有沒有辦法在isCancelled打開時中斷Thread.sleep ? 替代方案 - RunL ...

NSOperationQueue 可以緩存多少操作

[英]how many operations NSOperationQueue can cache

我創建了一個NSOperationQueue ,並將maxConcurrentOperationCount屬性設置為2。如果我創建2個不停的操作,當我繼續往里面添加操作時, NSOperationQueue會緩存這些任務,那么最多可以緩存多少個操作通過NSOperationQueue ,它會導致 m ...

如何使用 OperationQueue 處理圖片下載器的 URLSession

[英]How to use OperationQueue to handle URLSessions for an image downloader

我正在嘗試在 swift 中創建一個簡單的ImageDownloader框架。 我想要達到的目標: 能夠下載具有給定 URL 的圖像緩存 url 字符串所以只獲取一張圖像沒問題,我只是使用func dataTask(with url: URL, completionHandler: @escapi ...

如何使用`NSOperationQueue`阻塞`dispatch_sync`

[英]how to do blocking `dispatch_sync` using `NSOperationQueue`

有時我需要做同步返回。 在 dispatch_sync 中它只是: 我不確定這如何轉化為 NSOperationQueue。 我檢查了maxConcurrentOperationCount = 1,但我不認為這是阻塞。 我的理解是,這只會使操作隊列“串行”,而不是“同步”。 ...

Swift 5.5 並發:如何序列化異步任務以用 maxConcurrentOperationCount = 1 替換 OperationQueue?

[英]Swift 5.5 Concurrency: how to serialize async Tasks to replace an OperationQueue with maxConcurrentOperationCount = 1?

我目前正在遷移我的應用程序以在 Swift 中使用並發 model。 我想序列化任務以確保它們一個接一個地執行(沒有並行性)。 在我的用例中,我想收聽 NotificationCenter 發布的通知,並在每次發布新通知時執行一個任務。 但我想確保沒有以前的任務正在運行。 這相當於使用 maxCo ...

NSOperation Queue waitUntilAllOperationsAreFinished 導致 NSOperation 實例 deinit 延遲

[英]NSOperation Queue waitUntilAllOperationsAreFinished causes NSOperation instance deinit late

我們的應用程序目前使用NSOperation (Swift 中的Operation )來管理一系列網絡請求和數據解析。 一些代碼需要在隊列中的所有 5 個操作完成后執行,這通常使用 GCD 組實現。 問題是NSOperation實例在完成所有 5 個操作之前不會deinit ,這導致 memory ...

Objc memory和xcode 12.4升級導致的線程崩潰

[英]Objc memory and threading crash caused by xcode 12.4 upgrade

在過去的幾周里,我一直在嘗試解決看似隨機出現的崩潰問題。 我相信這與使用 12.3 中的 xcode 12.4 創建的構建相吻合。 我的同步操作因 memory 中的EXC_BAD_ACCESS崩潰而開始崩潰。 我正在使用 NSOperationQueue。 我試過使用僵屍對象,但因為錯誤在一個bl ...

使用操作來管理 function 調用之間的不平衡

[英]Using Operations to manage imbalances between function calls

我正在編寫具有start()和stop() function 的VideoPlayer() class 來啟動給定視頻的播放。 每個VideoPlayer()實例管理一個視頻 start()和stop()函數是異步的,我通過成功/失敗的委托獲得通知。 此委托由第三方 SDK 完成。 我有客戶調用st ...

在 OperationQueue 中設置背壓(或替代 API,例如 PromiseKit、Combine Framework)

[英]Setting backpressure in OperationQueue (or alternative API, e.g. PromiseKit, Combine Framework)

我在處理許多圖像的管道中有兩個步驟: 第 1 步:在本地加載(或下載)圖像(IO 綁定) 第 2 步:運行機器學習 model(CPU/GPU/計算綁定/單線程,因為 model 很大)。 如何限制存儲在 memory 中的圖像數量(從步驟 1 開始)排隊等待第二步。 這在反應式編程中稱為背壓。 ...

在 queue.sync { self._state } 處崩潰

[英]Crashing at queue.sync { self._state }

我正在嘗試創建操作的異步子類。 代碼在“狀態”屬性的 getter 上崩潰。 我找到了一篇解決異步子類的文章,但我很好奇為什么在 queue.sync { self._state } 會發生崩潰 _state 屬性的 willSet 和 DidSet 被調用並且控件移動到 getter state ...

NSBlockOperation 可以在執行時取消自身,從而取消依賴的 NSOperations 嗎?

[英]Can NSBlockOperation cancel itself while executing, thus canceling dependent NSOperations?

我有許多具有依賴關系的NSBlockOperation鏈。 如果鏈中早期的一個操作失敗 - 我希望其他操作不運行。 根據文檔,這應該很容易從外部完成 - 如果我取消一個操作,所有相關操作都應該自動取消。 但是 - 如果只有我的操作的執行塊“知道”它在執行時失敗了 - 它可以cancel自己的工作嗎 ...

以線程安全的方式運行 Combine 鏈

[英]Running a Combine chain in a thread-safe way

我有一個使用Operation子類和OperationQueue實現的現有流程。 我正在嘗試將 Combine 中的重新實現作為學習練習。 當前版本,簡化后如下所示:func testFunction(completionHandler: (Result) -> Void) { let ...

swift 串行隊列操作亂序

[英]swift serial queue operations out of order

我正在嘗試實現一個串行隊列,但由於某種原因,第二個塊在第一個塊之前完成(如系統打印中所示。任何關於為什么會發生這種情況或如何修復它的知識將不勝感激! SWIFT 代碼: OUTPUT: ...

取消操作隊列 Swift

[英]Canceling OperationQueue Swift

我正在學習OperationQueue 。 如果有正在進行的通話,我想要做的是阻止網絡通話。 問題是當我點擊按鈕時,一個新的操作被添加到隊列中。 我錯過了什么嗎? ...

操作 queuePriority 未按預期工作

[英]Operation queuePriority not working as expected

我正在嘗試探索 queuePriority of Operation。 我有三個具有 queuePriority 非常高、高和正常的操作對象。 但是我得到了意想不到的 output,在日志中我可以看到 queuePriority 非常高的操作對象並不總是首先執行。 請幫忙。 Output: op1 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM