gpt4 book ai didi

objective-c - 如何独立运行两个任务

转载 作者:行者123 更新时间:2023-12-03 16:33:10 24 4
gpt4 key购买 nike

我正在 Mac OS X (10.6) 上构建一个应用程序。在此应用程序中,我有一个屏幕,用户将在其中提供输入,并将其保存为本地文件夹中的 plist。该 plist 文件需要使用 HTTP POST 服务传输到服务器。应检查服务器连接,如果连接失败,文件将保存在本地文件夹中。一定时间后,再次检查服务器连接,如果找到,则将本地文件夹中存储的所有文件一一发送。

基本上,GUI 应用程序将连续运行以获取用户的输入,并且在另一个线程中应该检查服务器连接并发送文件。

所以我的问题是解决问题的好方法是什么,如果有人可以发送一些示例代码,那对我来说会很棒。

谢谢,巴润

最佳答案

Objective-C 中有多种线程处理方法!最简单的策略是 NSOperationQueue。重写 NSOperation 来处理您的 HTTP 请求,如果您需要在完成时收到通知,则可以选择设置一个完成 block ,将其实例添加到 NSOperationQueue 对象中,然后就可以开始了。设置 NSTimer 以在第一次上传失败时重新安排上传时间。您可以使用 NSURLConnection 来处理 Web 内容。请注意,NSURLConnection 可以异步或阻塞建立连接。由于您的 NSOperation 子类已经在单独的线程中运行,因此您可能希望使用阻塞方法(如果不这样做,则必须创建一个并发 NSOperation 子类,这需要更多工作)。

您还可以使用 Grand Central Dispatch 的 API,将新线程分离到您指定的方法,或使用普通的旧 c(我不推荐最后两个,但最好提及它们)。作为奖励,NSOperationQueue 和 Grand Central Dispatch 都知道当您同时运行多个操作时“什么是正确的”,并且会扩展线程数量以适应用户计算机中的核心数量,以获得最佳性能。

查看 NSOperationQueue、NSOperation 和 NSURLConnection 的文档。指南和示例项目将包含您所需的所有源代码,帮助您朝着正确的方向开始。

关于objective-c - 如何独立运行两个任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com