我有一个Objective-C / Swift控制台应用程序,我正在更新以连接到Redis(pub / sub)。但是,应用程序甚至在连接到Redis服务器之前就会退出。
如何让应用程序(主线程)基本上永远运行而不会阻塞后台线程(NSOperationQueue)?
我在C#中开发了类似的东西并使用了" Console.Read()"功能基本上等待永远。我尝试使用相同的方法来使用" scanf(...)"但这似乎阻止了后台线程的执行。
我发现了这个问题,Console App Terminating Before async Call Completion代表C#。 Objective-c / Swift中有类似的内容吗?
非常感谢任何输入。
谢谢!
答案 0 :(得分:0)
[[NSRunLoop currentRunLoop] run];
在主线程上执行此操作。它永远不会回来。
如果您要在运行循环的上下文中调用某些代码,请使用dispatch_after()
或performAfter:...
或其中的变体。