首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不使用sleep()的情况下暂停mac上c或objective-c中的函数

如何在不使用sleep()的情况下暂停mac上c或objective-c中的函数
EN

Stack Overflow用户
提问于 2009-08-03 21:45:47
回答 5查看 7.1K关注 0票数 1

您好,我想暂停一个可可项目中函数的执行。我不想使用sleep(),因为函数需要在用户交互后恢复。我还想避免在多个调用睡眠的情况下执行此操作。

感谢您的回复。好的,我在等待答案的时候开始了代码。然后我意识到睡眠或暂停对我来说是没有用的,因为它释放了我的整个程序。我想我可能需要做一些线程化。情况是这样的:

我有一个使用coreplot的程序。我也用它来调试和开发算法,所以我在处理数据的时候做了很多绘图(即在代码的中间,但我需要灵活地把它放在任何地方,所以我不能分离我的函数)。我可以用NSRunAlertPanel做到这一点,但是有一个像这样的消息框并不能让它看起来很漂亮,而且当警报打开时,我不能对主窗口做太多事情。

我希望我的解释不会太混乱,但如果我想在这里说一句话:

我想要与我的可可界面交互,而我的一个功能在它正在做的事情中停止了。

EN

回答 5

Stack Overflow用户

发布于 2009-08-06 16:33:54

我觉得你是在找-NSRunLoop runUntilDate:

苹果的文档:runUntilDate

此代码将导致方法中的执行暂停,但仍会发生其他事件,如计时器和用户输入:

代码语言:javascript
复制
while ( functionShouldPause )
{
        [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
}

将functionShouldPause切换回false将允许执行方法的其余部分。

票数 3
EN

Stack Overflow用户

发布于 2009-08-03 21:58:50

看起来你更感兴趣的是对用户事件的反应,而不是“暂停”函数。您可能希望将想要执行的代码放入另一个函数中,该函数作为用户操作的结果而被调用。

票数 2
EN

Stack Overflow用户

发布于 2009-08-03 21:55:24

在C中,你可以在<unistd.h>中使用pause()函数。这会导致调用程序挂起,直到它接收到信号为止,此时pause调用将返回,您的程序将继续(或调用信号处理程序,具体取决于接收到的信号)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1224784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档