请求多线程
cpu执行进程中的线程
线程并行执行(异步) )。
一个进程包含多个线程,至少包含一个线程(主线程、UI线程)
进程中的变量不共享,但线程是共享的
线程中的变量,哪个线程中的方法调用了此变量,此变量属于哪个线程。
创建子线程
首先引用命名空间
using System.Threading//字命名空间包含C#的线程操作
ThreadStart ts=new ThreadStart方法名称; //如何封装和启动一个线程
threadthread=newthread(ts; //线程类线程对象需要启动线程的方法
开始线程
thread.Start (;
开辟一个新线程,新线程执行完后要执行回调
委托就是用来储存方法的结构
委托类型储存什么样的方法?
委托保存的方法必须与委托的返回值和参数类型匹配。先定义委托类型
delegate返回类型委托类型名称(参数列表);
publicdelegatevoid http://www.Sina.com/(inta,int b ); //委托关键字delegate
CalcHandler函数指针(已保存方法的地址) )。
Calc CalcHandler的Handler类型是委托常用名称,程序员一眼就能看出这是委托
委托是为了保存方法的结构
简言之,委托是方法的变量,指向方法时,具有与该方法相同的功能
委托类型委托的别名:代理,句柄
委托是自定义类型
委托是引用类型
委托方[访问修饰符]委托类型名称委托方的名称
publicbuyhouseeventhandlebuyhouseeventhandle;
委托代理委托方=方法名称;
Xiaoming.buyhoueventhandle=intermediary.buy house;Handler
绑定和解除绑定委托对象Xiaoming.buyhoueeventhandle=Lian Jia.buy house; Xiaoming.buyhoueventhandle-=Lian Jia.buy house; 委托方的执行委托方(参数列表);
house house=Xiaoming.buyhoueeventhandle (100000,80 );注意只写方法名,没有括号
链委托有特别强的点委托链
公共语音添加(int b,int b )控制台. writeline ) ab; }公共void sub (inta,int b ) console.writeline ) a-b ); } CalcHandler calcHandler=Add; calcHandler =Sub; 呼叫处理程序(3,4 ); 他可以链接两种方法
的结果是用两种方法计算的两个值