问题描述
我想大家在刚学习用TCP客户端连接服务器时,在连接的过程中,客户端一直回处于无响应状态,直到连接成功或失败为止!!既然大家在代码界混了这么久,想必一定知道该如何解决这个问题了吧,如何实现想QQ一样,连接的时候也可以拖动窗口,还可以有个小动画或文字来表示正在连接中?作为一名刚踏入C#界的小辈来说,不知如何下手。。。现在我想到的办法就只有把连接放到一个线程里,不知还有其他更好的办法没?就大神赐教~谢谢
解决方案
解决方案二:
引用楼主sinat_29437461的回复:
现在我想到的办法就只有把连接放到一个线程里,不知还有其他更好的办法没?
你想到的办法经实践有什么问题?或者你是懒得用测试实践来说明问题?
解决方案三:
引用楼主sinat_29437461的回复:
我想大家在刚学习用TCP客户端连接服务器时,在连接的过程中,客户端一直回处于无响应状态,直到连接成功或失败为止!!既然大家在代码界混了这么久,想必一定知道该如何解决这个问题了吧,如何实现想QQ一样,连接的时候也可以拖动窗口,还可以有个小动画或文字来表示正在连接中?作为一名刚踏入C#界的小辈来说,不知如何下手。。。现在我想到的办法就只有把连接放到一个线程里,不知还有其他更好的办法没?就大神赐教~谢谢
耗时或者会发生阻塞的问题,就是另起线程来解决线程中的工作进度显示到UI,需要使用委托;如果线程不熟悉,可以用backgroundworker控件,类似的效果
解决方案四:
直到连接成功或失败为止!!-》代码经过认真测试?或者逻辑上有问题。还可以有个小动画或文字来表示正在连接中-》使用WPF动画技术。
解决方案五:
涉及到线程阻塞,肯定异步啊,要么另起线程,要么在当前线程异步调用,如果是主线程的话,还是建议另起线程;话说你都想到了,为什么不去试试先呢;
解决方案六:
引用1楼sp1234的回复:
Quote: 引用楼主sinat_29437461的回复:
现在我想到的办法就只有把连接放到一个线程里,不知还有其他更好的办法没?你想到的办法经实践有什么问题?或者你是懒得用测试实践来说明问题?
不是,我的确试过了,可以。。。我就是想知道还有没有其他方法之类的。。。这不是想~或许有更好的方法不是~
解决方案七:
引用2楼xian_wwq的回复:
Quote: 引用楼主sinat_29437461的回复:
我想大家在刚学习用TCP客户端连接服务器时,在连接的过程中,客户端一直回处于无响应状态,直到连接成功或失败为止!!既然大家在代码界混了这么久,想必一定知道该如何解决这个问题了吧,如何实现想QQ一样,连接的时候也可以拖动窗口,还可以有个小动画或文字来表示正在连接中?作为一名刚踏入C#界的小辈来说,不知如何下手。。。现在我想到的办法就只有把连接放到一个线程里,不知还有其他更好的办法没?就大神赐教~谢谢耗时或者会发生阻塞的问题,就是另起线程来解决线程中的工作进度显示到UI,需要使用委托;如果线程不熟悉,可以用backgroundworker控件,类似的效果
恩~跟我的想法是一样~我就是想知道还有没有其他或许更好的方法而已~
解决方案八:
引用5楼sinat_29437461的回复:
Quote: 引用1楼sp1234的回复:
Quote: 引用楼主sinat_29437461的回复:
现在我想到的办法就只有把连接放到一个线程里,不知还有其他更好的办法没?你想到的办法经实践有什么问题?或者你是懒得用测试实践来说明问题?
不是,我的确试过了,可以。。。我就是想知道还有没有其他方法之类的。。。这不是想~或许有更好的方法不是~
你应该恶补计算机基础,什么是进程,什么是线程UI是主线程负责显示,那么你用代码阻塞住了主线程,UI当然是不会刷新,也不接受用户操作,也就是未响应了
解决方案九:
这就好比你去肯德基点餐如果给你点餐的人自己去后面忙活了,那么你之后对着空气说话,谁也不会搭理你只有另外派一个人去后面忙活,前面的人才能继续给你提供别的服务理论上就是这样,你还期待有什么别的好办法?
解决方案十:
如果你认为线程不是最好的办法那么另一个办法就只能是多进程了这就好比你看这家肯德基满了,就去旁边一家店,互相不影响