簡體   English   中英

NSOperation取消:NSInvocationOperation或NSOperation子類?

[英]NSOperation Cancellation: NSInvocationOperation or NSOperation subclass?

我有一個相當簡單但很昂貴的任務,我需要在后台運行,這是標准的NSOperation情況。 我還需要確保操作支持取消,並適當停止。 鑒於這個要求,這是更好的方法:只是在NSInvocationOperation中包裝昂貴的方法調用,或者從頭開始編寫NSOperation子類?

到目前為止,這是我的想法。 NSInvocationOperations是我的第一選擇,也是我過去使用的,因為任務非常簡單,我不想編寫一個包含所有NSOperation樣板代碼的整個類來執行它。 現在讓我猶豫不決的事實是,在NSInvocationOperation中執行的方法似乎沒有辦法檢查是否在我腦海中沒有引起hackery警報的取消。 有關所述hackery的一些示例,請參閱此問題 我試過了,他們確實工作,他們也感覺很蠢。

如前所述,編寫一個NSOperation子類似乎有點過分來執行簡單的任務,但毫無疑問,檢查取消比我遇到的NSInvocationOperation更優雅。

那么,對於那些擁有更多NSOperations的人來說,哪些人已經習慣了最成功的結局呢? 使用我可能錯過的NSInvocationOperations是否有一個很好的取消解決方案? 如果沒有對取消的某種支持,那么NSInvocationOperations有用的情況就會岌岌可危。

我相信,對NSOperation進行子類化是唯一優雅的方法。

當我將現有代碼重構為多線程時,我傾向於只使用NSInvocationOperations,那么它是一個方便的快捷方式。

只是NSOperation的子類。 (需要更多字符)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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