1

当应用程序尝试通过连接到托管在服务器某处的 php 脚本登录时,应用程序会停止响应,这是意料之中的,但如果连接或 php 脚本的响应有一些延迟,等待也会变得很长,看起来应用程序已经挂起,我们不希望我们的用户认为。

那么,仅仅为此目的创建一个新线程并简单地禁用主应用程序上的控件直到收到响应是一个好主意吗?

我正在使用 C++ 和纯 Winapi 以及 libCurl 和 oop。

4

2 回答 2

2

您永远不应该在您的主(GUI?)线程中执行(可能)时间密集型任务。连接到服务器就是这样的事情。您可能会通过使用异步 IO(例如回调或非阻塞套接字)来解决它,但这些解决方案也只会为您生成另一个线程。在另一个线程中进行连接并在连接时禁用控件,但告诉用户程序正在做某事(例如通过旋转圆圈或其他东西)。当程序似乎什么都不做时,用户会讨厌它。

于 2013-06-25T09:14:35.237 回答
2

libcurl 多接口具有异步工作的能力,因此您不必使用单独的线程,而是必须调用 curl_multi_perform() 函数,直到获得结果。它可能看起来很奇怪,但每次你都可以避免在应用程序中使用线程,你就赢了。线程 == 总有一天会发生的错误,因此请尽可能避免它们。这是一些基本示例

于 2013-06-25T09:37:12.253 回答