【问题标题】:How to stop a function call if its take more than 3 secs in Object c如果在对象 c 中花费超过 3 秒,如何停止函数调用
【发布时间】:2011-12-29 06:36:17
【问题描述】:

我有一个函数,它需要 3 到 30 秒的时间来执行,具体取决于一些计算。

如果我的函数调用时间超过 5 秒,我想停止。 如何在 Objective C 中做到这一点。

【问题讨论】:

    标签: objective-c function call blocking


    【解决方案1】:

    您必须在单独的线程中执行命令(例如使用 performSelectorInBackground 或使用 NSThread),等待 5 秒(同样,使用 unix sleep 或 NSThread 方法),然后(取决于执行线程中正在执行的操作) ):

    • 将类中的某些字段设置为“终止”,并经常在“长”函数中检查该字段
    • 如果有块,取消 IO 操作
    • 取消一个话题(你可以在这里阅读:how to stop nsthread

    【讨论】:

      【解决方案2】:

      您可以使用计时器并设置一个条件,例如如果计时器超过 5 秒,则什么也不做。

      【讨论】:

      • 您好,我是目标 c 的新手,我尝试使用 5 秒的计时器,但在“timerTick”函数中,我调用了我的函数,但我的函数在 30 秒后执行,然后计时器在 5 秒后不退出, .你能分享一个示例代码吗。
      猜你喜欢
      • 1970-01-01
      • 2021-06-13
      • 2023-03-18
      • 2023-03-22
      • 2021-08-09
      • 1970-01-01
      • 2016-05-05
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多