摘要: 不需要传递参数,也不需要返回参数 我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下:ThreadStart threadStart=new ThreadStart(Calculate);Thread thread=new Thread(thread... 阅读全文
posted @ 2015-07-17 22:57 haxianhe 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示。正确的做法是将工作线程中涉及更新界面的代码封装为一个方法,通过... 阅读全文
posted @ 2015-07-17 22:36 haxianhe 阅读(121) 评论(0) 推荐(0) 编辑
摘要: Thread thread.IsBackground =true;//Gets or sets a value indicating whether or not a thread is a background thread.//获取或设置一个值,该值指示某个线程... 阅读全文
posted @ 2015-07-17 21:33 haxianhe 阅读(593) 评论(0) 推荐(0) 编辑
摘要: 假如在一个机器上IP=192.168.0.2,一个客户程序,一个服务器程序,,只要是客户程序向127.0.0.1发请求,那么服务器程序就能收到127.0.0.1是内部的环回地址,是你在你本机上访问自己的一个IP地址,等同于locallhost系统接受到一个地址时首先会... 阅读全文
posted @ 2015-07-17 11:25 haxianhe 阅读(3763) 评论(0) 推荐(0) 编辑
摘要: Socket client //假如已经创建好了,连接到服务器端得Socket的客户端对象。我们只要client.Poll(10,SelectMode.SelectRead)判断就行了。只要返回True是。就可以认为客户端已经断开了。Poll 方法将会检查 Socke... 阅读全文
posted @ 2015-07-14 16:32 haxianhe 阅读(1563) 评论(0) 推荐(0) 编辑
摘要: delegate void 委托名(方法名);void 方法名(){if(txtBox.invokeRequered){委托名 d=new 委托名();txtBox.invoke(d);}else{具体的执行语句}}原来是存在跨线程调用控件的问题解决方法有两种:第一是... 阅读全文
posted @ 2015-07-14 01:42 haxianhe 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。(线程入口使程序知道该让这个线程干什么事)在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行... 阅读全文
posted @ 2015-07-14 01:40 haxianhe 阅读(120) 评论(0) 推荐(0) 编辑
摘要: \a 响铃\n 换行符\r 回车符t 水平制表符(Tab键)\b 退格符(BackSpace键) \\ 反斜线\' 单引号\" 双引号\0 空字符 ... 阅读全文
posted @ 2015-07-13 16:31 haxianhe 阅读(489) 评论(0) 推荐(0) 编辑
摘要: TCPTCP (Transmission Control Protocol)属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,TCP支持的应用协议... 阅读全文
posted @ 2015-07-13 14:39 haxianhe 阅读(1370) 评论(0) 推荐(0) 编辑
摘要: 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,... 阅读全文
posted @ 2015-07-13 12:31 haxianhe 阅读(110) 评论(0) 推荐(0) 编辑