自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (1)
  • 收藏
  • 关注

原创 异步线程学习笔记(六) 前台线程和后台线程

在默认情况下,我们手动创建的线程都是前台线程,而只要有前台线程在运行,应用程序就会一直处在活跃的状态,当然,一旦所有前台线程都结束了,即便还有后台线程存在,应用程序也会结束。 此外,我们还要知道,前台线程和后台线程只是线程的状态,和线程的优先级及分配的时间片大小无关。 那么怎么创建和查询一个线程是不是后台线程呢? 我们可以通过IsBackGround属性来判断。 下面看一个例子: static void Main(string[] args) { Thread wor

2020-10-20 20:44:35 202

原创 异步线程学习笔记(五)向线程传递数据和异常处理

的线程委托函数,那么,我们又该怎么向这个函数传递数据呢? 1)最简单的方法是使用lambda表达式,在里面使用参数,调用方法。 static void Main(string[] args) { Thread t = new Thread(() => Print("Hello from t!")); t.Start(); Console.ReadKey(); } st

2020-10-19 19:39:07 326

原创 异步线程学习笔记(四) 线程安全

在学习线程安全之前,我们需要了解两个概念,什么叫做本地和共享。 1)本地独立: CLR会为每个线程分配自己的内存栈,以便使本地变量保持独立。 2)共享: 如果多个线程引用了同一个对象的实例,那么它们就共享了数据。 class ThreadTest { bool _done; static void Main() { ThreadTest tt = new ThreadTest();//创建了一个共同的实例

2020-10-14 20:57:40 220

原创 异步线程学习笔记(三)阻塞

线程阻塞既是: 如果线程执行由于某种原因暂停,则可以认为线程阻塞。 我们常见的线程阻塞有: hread.Sleep和Thread.Join方法 被阻塞的线程的基本操作原理: 被阻塞的线程会立刻将其处理器的时间片转移给其他线程,从此不再消耗处理器的时间,知道阻塞条件被满足。 判断线程是否被阻塞: 我们可以通过Thread.State来判断线程状态,值得一提的是,Thread.State是一个flag enum,可以通过二进制表示线程状态。 十进制数 Thread.State 备注 0 Runn

2020-10-13 20:45:35 336

原创 异步线程学习笔记(二) Join和Sleep

在上一章学习过后,我们肯定希望能控制线程有序,Join和Sleep可以通过阻塞线程成达到这一目的,下面我们开始学习Join和Sleep方法。 Join方法:等待另一个线程完成。 示例如下: namespace JoinANDsleep { class Program { static Thread thread1, thread2; public static void Main(string[] args) { thread1 = new Thread(ThreadProc); thread1.Name

2020-10-09 22:15:39 156

原创 异步线程学习笔记(一) 线程

异步线程学习笔记(一) 线程 作为初学者,关于线程,我们需要了解以下几点: 1、什么是线程 线程实际上就是一个独立的可执行路径,可以独立于其他线程 2、线程和进程的关系 线程依托于进程存在,一个进程可以有多个线程也可以只有一个线程。 并由此衍生出单线程应用和多线程应用。 单线程应用: 在进程中只跑一个线程,所以该线程有独占权。 多进程应用: 在进程中跑多个线程,共享当前的执行环境。 3、如何创建线程 using system.threading;//大多数线程函数的名称空间 Thread t=new T

2020-10-08 22:18:11 190

客户端.zip(c#入门级基础客户端)

主要用二进制序列化进行信息的处理,timer进行定时TCPCLIENT,信息的接受通过自定义事件传回主线程,然后使用invokerequired判断是主线程还是子线程传过来的信息来防止UI崩溃

2020-07-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除