【发布时间】:2016-11-15 02:52:54
【问题描述】:
我有一个方法,由于问题的计算负载,有时需要几秒钟才能返回结果。请注意,这纯粹是一个“离线”问题,该函数不会调用基于 Web 的 API。
目前,每当我要求返回该方法时,它只会返回 nil,因为它仍在另一个线程上处理该函数。
如何编写一个等待函数正确、非零响应的函数?
【问题讨论】:
-
别等了。让计算函数完成时通知。
-
@vadian。你能举出任何例子吗?当然,这只是将问题进一步推向上游,但这是同一个问题,对吗?
-
这是同样的问题,但与轮询(等待)不同,它不会浪费任何资源。
-
“当然这只会让问题更进一步” 绝对不是。当您在函数中等待时,您将阻止该线程的执行,如果该函数调用是在 GUI 中进行的,那么对于用户,您的应用程序已挂起并且无法响应用户输入。如果您使用块(闭包)或委托等正确实现它以在操作完成时通知调用代码,则不会发生此阻塞。
-
你看过苹果的“并发编程指南”吗?
标签: ios asynchronous promise swift3