【发布时间】:2012-12-17 01:33:01
【问题描述】:
我猜我需要做线程,但在我教自己一些不好的做法之前,我想确保我以正确的方式去做。
基本上,我有一个“聊天”应用程序,可以告诉它监听或 ping 收件人的 ip 地址:端口(在我目前的情况下为 127.0.0.1:1300)。当我打开我的应用程序两次(第一个监听,第二个发送 ping)时,我选择一个并告诉它监听(这是一个 While 语句,它一直在监听直到它收到一个 ping 消息)和另一个会ping通它。它效果很好!
问题是,当我单击“侦听 ping”按钮时,它会进入胶合“向下”模式并“视觉”冻结,但是它将 UDP 数据包消息打印到控制台,所以我知道它实际上并没有冻结。所以我的问题是如何做到这一点,以便我可以单击“收听”按钮并让它“收听”,同时有一个“工作”取消按钮,以便用户可以在处理时间过长时取消该过程?
【问题讨论】:
-
假设我有一个按钮,当我单击该按钮时,它在回调/信号旁边有一个永远的 While() 循环......我该怎么做才能使按钮不存在冻结?它导致用户的错误