WPF基础线程知识

本文介绍了WPF项目中的线程基础知识,包括线程的重要性、后台线程与异步操作、线程同步与线程关联度的概念。WPF的DispatcherObject和分发器在多线程交互中的作用,以及如何使用Invoke和BeginInvoke方法。最后,文中列举了四种创建线程的方式以及线程安全的方法,如Mutex、AutoResetEvent和Lock。
摘要由CSDN通过智能技术生成

线程几乎是所有项目或多或少都在用的一种技术手段了,在WPF项目中更是用的只会多不会少的。所以通过WPF的世界来介绍下线程。学习过《计算机操作系统》的基本很容易去理解线程和同/异步有多么的重要,进程、线程和同/异步的出现是让我们的计算机有这么大发展的基础之一。WPF的多线程和window窗体中的多线程基本一样,只是实现的细节和底层支持有点不一样。

我们的程序通常会执行很多的任务,在我们没处理的正常情况下任务都是同步进行的,也就是说在这个应用程序中一次只能执行一个任务,当这个任务执行结束了,才会去执行下一个任务。在这种情况下,长时间的占用就意味着长时间的等待,这个叫做线程阻塞,不仅很影响用户体验,拖累性能,更严重的还让人误以为程序死了。

为了避免线程阻塞,牛逼的前辈这时候就创造了后台线程,并且允许异步操作这种技术出来了。是的,多线程和同步、异步不是一个事。当后台线程完成自己的任务后,它是可以通知到程序的,这个时候程序会接着做自己事,这个叫做“线程同步”。是不是有点绕,我说明下,就像物理一样,同步异步只是参照物不同,AB任务是并列执行的异步操作,AC也许是同步执行的操作。

正常情况下WPF的对象只属于创建它的线程,而不会被其它线程所直接访问。就是说你一个后台线程是不能去访问主线程的用户界面的所有对象&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值