GUI应用程序C++中的事件处理线程
event handling thread in a GUI application C++
我正在开发一个内部连接到服务器的GUI应用程序。一旦连接,用户就可以使用GUI应用程序从服务器发送请求和获取数据。
首先,我们采用了单线程设计,点击按钮,应用程序就会解析接收到的事件,并相应地向服务器发送请求以获取所需的数据。
目前,我们仍在进行原型工作,但考虑了以下工作方式的变化-
-
有一个事件处理程序线程,当用户点击某个东西时,该线程接收事件。
-
该线程将处理事件并调用适当的函数,并向服务器发送请求。(所有这些都将在事件处理程序线程的上下文中发生)
-
当应用程序仍在等待来自服务器的数据时,我如何处理接收到的事件?我想让事件处理程序线程拒绝之前正在进行的请求,并为接收到的新事件提供服务。从用户的角度来看,当用户在上一个按钮仍在等待响应时单击新按钮时,我们应该丢弃之前所做的操作,并处理新按钮的单击。
请对此发表评论。这是我第一次使用客户端gui应用程序并请求您对此应用程序的输入。
有一些策略。如果应用程序忽略结果是合适的,则可以取消连接并运行新的连接。不过,有些服务器应用程序不喜欢这样。
如果应用程序不适合仅断开连接,例如更新记录的数据库调用,则可以从队列中运行请求,将请求放入队列中,然后线程将其拉出并完成工作,然后通知应用程序已完成连接。
另一种方法是在自己的线程中运行每个请求,这将允许您忽略不想要的结果,或者允许您一次实际执行多个任务。
相关文章:
- C++:处理线程本地对象销毁
- C++11 - 可以等待多个不同事件的线程?
- 无法在sfml中处理线程
- Qt的事件循环线程是安全的还是原子的?处理"队列连接"时如何同步?
- 提高 ASIO stream_descriptor和事件 FD 线程安全性
- MFC-在dll卸载时,扫描我的代码,任何剩余的计时器,事件,线程等
- 在运行线程中处理事件
- 在处理线程时,处理错误的正确方法是什么
- 如何处理线程
- C++中的多线程事件处理
- 提升线程 - 安全/有保证的处理线程中断的方式
- 您应该如何处理线程中的文件打开错误而不取消
- 如何处理线程函数中的重复代码
- 使用事件同步线程
- GUI应用程序C++中的事件处理线程
- 在Qt中,当事件循环线程拥有的QObject上的插槽正在执行时,QThread的事件循环是否会阻塞?
- c++ Win32数据处理线程
- 在差异处理线程之间发送信号
- 等待事件的线程并不总是捕获事件信号
- 如何在visual c++中使用TSL汇编指令处理线程