.NET Framework第二天_第1页
.NET Framework第二天_第2页
.NET Framework第二天_第3页
.NET Framework第二天_第4页
.NET Framework第二天_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多线程staticvoidMain(stringargs)DLMyDl=newDL(SendMail);Console.WriteLine(开始收发邮件);IAsyncResultrusult=MyDl.BeginInvoke(求职,null,null);while(rusult.IsCompleted)MyDl.EndInvoke(rusult);for(inti=0;i5;i+)Console.WriteLine(正在接收邮件);Thread.Sleep(1000);Console.Read();staticvoidSendMail(stringcon)Thread.Sleep(3000);for(inti=0;i5;i+)Console.WriteLine(正在发送邮件:0,con);Thread.Sleep(1000);,多线程,操作系统使用进程将它们正在执行的不同应用程序分开。线程是操作系统分配处理器时间的基本单元,并且进程中可以有多个线程同时执行代码。每个线程都维护异常处理程序、调度优先级和一组系统用于在调度该线程前保存线程上下文的结构。,多线程,支持抢先多任务处理的操作系统可以创建多个进程中的多个线程同时执行的效果。它通过以下方式实现这一点:在需要处理器时间的线程之间分割可用处理器时间,并轮流为每个线程分配处理器时间片。当前执行的线程在其时间片结束时被挂起,而另一个线程继续运行。当系统从一个线程切换到另一个线程时,它将保存被抢先的线程的线程上下文,并重新加载线程队列中下一个线程的已保存线程上下文。时间片的长度取决于操作系统和处理器。由于每个时间片都很小,因此即使只有一个处理器,多个线程看起来似乎也是在同时执行。这实际上就是多处理器系统中发生的情形,在此类系统中,可执行线程分布在多个可用处理器中。,多线程,.NET用Thread创建并控制线程,设置做强先级并获取其状态。Threadt1=newThread(newThreadStart(tt1.WriteColor);或Threadt1=newThread(newParameterizedThreadStart(tt1.WriteColor);,多线程,多线程,多线程,多线程,classMyClasspublicvoidMyMethod()Console.WriteLine(方法MyMethod!);MyClassMC=newMyClass();ThreadStartTS=newThreadStart(MC.MyMethod);ThreadThrTest=newThread(TS);ThrTest.Start();,多线程,可以为线程分配以下任何一个优先级值:HighestAboveNormalNormalBelowNormalLowest,多线程,Abort中止线程执行。Sleep使线程睡眠一段时间,方法的参数为睡眠的毫秒数。,多线程,线程的状态ThreadState,多线程,阻塞线程classProgramstaticThreadThrTest1,ThrTest2;staticvoidMain(stringargs)ThreadStartTS1=newThreadStart(WriteLine1);ThrTest1=newThread(TS1);ThreadStartTS2=newThreadStart(WriteLine2);ThrTest2=newThread(TS2);ThrTest1.Start();ThrTest2.Start();publicstaticvoidWriteLine1()for(inti=0;i20;i+)if(i=10)ThrTest2.Join();Console.ForegroundColor=ConsoleColor.Blue;Console.WriteLine(i.ToString()+WriteLine1);Thread.Sleep(500);,publicstaticvoidWriteLine2()for(inti=0;i0)/卖书过程Thread.Sleep(1000);num=num-1;Console.WriteLine(售出一本);elseConsole.WriteLine(没有了);,多线程,Monitor类通过向单个线程授予对象锁来控制对对象的访问。对象锁提供限制访问代码块(通常称为临界区)的能力。当一个线程拥有对象的锁时,其他任何线程都不能获取该锁。,多线程,多线程,voidDataHandle()Monitor.Enter(this);for(inti=0;i=20;i+)if(dataOutput=5)Console.ForegroundColor=ConsoleColor.Red;Console.WriteLine(Handle睡了);Console.ForegroundColor=ConsoleColor.Black;Monitor.Wait(this);dataOutput+;Console.WriteLine(Thread.CurrentThread.Name+正在处理第+dataOutput+笔数据;!);Thread.Sleep(100);if(dataOutput=5)Console.ForegroundColor=ConsoleColor.Red;Console.WriteLine(Handle让别人醒);Console.ForegroundColor=ConsoleColor.Black;Monitor.PulseAll(this);Console.WriteLine();,多线程,voidDataPrint()Monitor.Enter(this);doif(dataOutput=0)Console.ForegroundColor=ConsoleColor.Red;Console.WriteLine(Print睡了);Console.ForegroundColor=ConsoleColor.Black;Monitor.Wait(this);Console.Write(Thread.CurrentThread.Name+正在打印第+dataOutput+笔数据;!);Thread.Sleep(100);dataOutput-;dataSum+;Console.WriteLine(总处理数据笔数+dataSum);if(dataOutput=0)Console.ForegroundColor=ConsoleColor.Red;Console.WriteLine(Print让别人醒);Console.ForegroundColor=ConsoleColor.Black;Monitor.PulseAll(this);Console.WriteLine();while(dataSum0)TcpClientTC=newTcpClient(IP_TB.Text,int.Parse(Port_TB.Text);bytedata=Encoding.UTF8.GetBytes(New_TB.Text);NetworkStreamNetStr=TC.GetStream();NetStr.Write(data,0,data.Length);writestring(客户端说:+New_TB.Text);New_TB.Clear();Bytenewdate=newByte256;intlen=NetStr.Read(newdate,0,newdate.Length);writestring(服务端说:+Encoding.UTF8.GetString(newdate);NetStr.Close();TC.Close();,服务端Code,UDP/IP通讯,监控按钮thr=newThread(newThreadStart(UDPMethod);thr.Start();voidUDPMethod()UdpClientsender=newUdpClient(int.Parse(Port_TB.Text);IPEndPointendpoint=null;while(true)bytebytes=sender.Receive(refendpoint);writestring(UDP:+Encoding.UTF8.GetString(bytes);,客户端Code,UDP/IP通讯,发送按钮UDPMethod();voidUDPMethod()UdpClientsender=newUdpClient();IPEndPointendpo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论