多线程
进程:
一个程序就是一个进程,就相当于在内存里开辟一块空间
一个进程有多个线程。
线程:
操作线程的类在Threading命名空间下。
Thread thread=new Thread(方法名);注意Tread传入方法用到委托,不用加方法的括号
前台线程:
默认情况都是前台线程,特点:要所有的前台线程退出以后 程序才会退出
进程默认的线程叫做主线程或者UI线程。
线程什么时候结束,该线程执行的方法执行完以后 线程自动退出
后台线程:
只要所有的前台线程结束 后台线程就会立即结束
设置线程为后台线程:thread.IsBackGround=true;
TextBo.CheckForIllegalCrossThreadCalls=false;//关闭控件的跨线程访问。
线程重入
:多个线程访问同一个资源 可能造成不同步的情况,这个叫做线程重入
如何解决这个问题:Lock(this)this代表当前对象,Lock将这个对象当参照物,将它锁住
例: Lock(this)
{
for(int i=0;i<1000000;i++)
{
int mun+=mun;
}
}
执行步骤:一个线程进来执行代码,并加一把锁,执行完就解锁,正在执行的时候另外一个线程来执行,发现有线程在执行就等待
,知道第一个线程执行完,第二个线程采取执行
th.Abort();强制停止线程。
Thread.Sleep();将当前线程暂停,括号中代表毫秒。
Thread.CurrentThread;这个属性是得到当前线程的引用。
委托
委托声明:public delegate void SayHi(),用delegate修饰
委托时用来保存多个个方法的指针。传入的方法决定委托有没有返回值和参数
委托跟类是一个级别,需要new。
使用+=为委托对象追加方法。
GDI常用类
问题:如果一个类不是抽象类也不是静态类,是普通类,并且没有提供构造函数(可以new ,是静态构造函数)
通过这个类返回一个静态方法。
从panelback控件上创建一个画家对象: Graphics g=Graphics.FromHwnd(this.panelback.Handle); 没法new出来,只能调用他的静态方法返回一个对象
DrawEllipse(Pens.Black);pens是笔,画圆;
DrawArc();画弧线;
DrawLine();划线;
DrawRectangle();画矩形;
DrawString();画字符串;
Fill.Ellopase();填充;Brushes刷子
FillRectangle();填充矩形
基础加强6之多线程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
复习 c#基础加强
語法規範:駱駝命名: 首字母小寫,單詞後字母大寫 使用在普通變量帕斯卡命名: 首字母大寫,單詞後字母小寫 使用在方法名或者類名面
努力o才幸福
2020-06-21 21:19:39
C# 复制和克隆认识浅谈
努力o才幸福
2020-06-21 21:19:39
C# 下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩、解压缩
努力o才幸福
2020-06-21 21:19:37
Java基础学习——复习 第五天--异常处理、常用类、集合类
婧中横卧听雨声
2020-06-11 15:28:40
C#反射基础知识和实战应用
努力o才幸福
2020-02-25 23:51:38
2013-12-10复习数据库高级语法
努力o才幸福
2020-02-25 23:51:38
复习 c#基础加强
語法規範:駱駝命名: 首字母小寫,單詞後字母大寫 使用在普通變量帕斯卡命名: 首字母大寫,單詞後字母小寫 使用在方法名或者類名面
努力o才幸福
2020-06-21 21:19:39