问题描述
如题:TCP/IP编程代码是这样的while(true){1。客户端向发送请求2。服务端向客户端返回数据3。客户端将服务端返回的数据写入数据库4。sleep1分钟}为什么客户端一运行就没有响应,窗口无法移动,但是其实还是在读数据的,每隔1分钟数据库刷新时能看到数据。多谢大家!
解决方案
解决方案二:
这明显是一个死循环,如果不懂开线程肯定就悲剧了
解决方案三:
肯定要用多线程,否则就死循环了
解决方案四:
将代码改成newThread(()=>{while(true){1。客户端向发送请求2。服务端向客户端返回数据3。客户端将服务端返回的数据写入数据库4。sleep1分钟}}).Start();
解决方案五:
开一个新线程,把UI线程跟你写的这个分开
解决方案六:
引用楼主veryshowboy1的回复:
如题:TCP/IP编程代码是这样的while(true){1。客户端向发送请求2。服务端向客户端返回数据3。客户端将服务端返回的数据写入数据库4。sleep1分钟}为什么客户端一运行就没有响应,窗口无法移动,但是其实还是在读数据的,每隔1分钟数据库刷新时能看到数据。多谢大家!
sleep1分钟有问题这么长sleep还不如改成timer控件呢当然最好的方法是开线程,可以避免重入问题
解决方案七:
你一直占着UI主线程去做那种那么耗时的操作,当然会出现界面卡死现象。遇到耗时操作一般都是开个子线程去执行的。建议好好的去看看线程运作机制,以及CPU对线程的执行调度方面的原理资料
时间: 2024-10-27 16:36:49