c#网络编程之TCP/IP(一)C#线程任务基础Thread

本文介绍了C#网络编程中的TCP/IP通信基础,探讨了多线程和多任务两种方式,并重点讲解了C#线程Thread的相关知识,包括主线程与辅助线程、前台线程和后台线程的区分,以及如何创建、启动、终止线程,设置线程优先级等。同时,文章提到在TCP/IP通信中加入心跳包发送机制,并预告将分享C#中的相关陷阱。
摘要由CSDN通过智能技术生成

这些日子很忙,太多的任务。今天把c#tcp/ip完善了一下,两种方式进行TCP/IP通信,一种是多线程,一种是多任务。之前看了c#之网络编程这本书,启发很大,但是里面的demo有很多很多的问题,以后我会一一讲述。再完善书上TCP/IP的历程中的逻辑不合理和bug的前提下,加入了心跳包发送机制,这一点c#有一个坑,回来慢慢给大家讲。

工欲善其事必先利其器,首先我们将一下C#的线程基础。


线程Thread


主线程和辅助线程

无论是控制台应用程序、WinForm、WPF程序,系统都会为进程创建一个默认的线程,这个线程为主线程。除了主线程外其他线程都是辅助线程。

C#界面编程UI线程是主线程,拥有大量计算操作和耗时操作都不能放在主线程中,否则会造成阻塞,这一点不仅仅是C#,java、android都是一样的。


前台线程和后台线程

一个线程要么是前台线程,要么是后台线程。两者的区别是:后台线程不会影响进程的终止,而前台线程会影响进程的终止。
用Thread对象创建的线程默认是前台线程,在托管线程池中执行的线程默认为后台线程。从非托管代码进入托管执行环境的所有线程也都被自动标记为后台线程。
IsBackground属性:获取或设置一个值,该值指示某个线程是否在后台执行。如果在后台执行为true,否则为false
IsThreadPoolThread属性:获取一个值,该值指示线程是否在托管线程池中执行。如果此线程在托管线程池中执行则为true,否则为false。
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值