如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C#编程三剑客C#网络应用高级编程第1章进程、线程与网络协议1.1进程和线程1.1进程和线程(续)1.1.1Process类例.启动、停止和观察进程privatevoidbuttonStop_Click(objectsender,EventArgse){//创建新的Process组件的数组,并将它们与指定的进程名称(Notepad)的所有进程资源相关联.Process[]myprocesses;myprocesses=Process.GetProcessesByName("Notepad");foreach(Processinstanceinmyprocesses){//设置终止当前线程前等待1000毫秒instance.WaitForExit(1000);instance.CloseMainWindow();}}privatevoidbuttonView_Click(objectsender,EventArgse){listBox1.Items.Clear();//创建Process类型的数组,并将它们与系统内所有进程相关联Process[]processes;processes=Process.GetProcesses();foreach(Processpinprocesses){//由于访问Idle的StartTime会出现异常,所以将其排除在外if(p.ProcessName!="Idle"){//将每个进程名和进程开始时间加入listBox1中this.listBox1.Items.Add(string.Format("{0,-30}{1:h:m:s}",p.ProcessName,p.StartTime));}}}1.1.2Thread类1.1.2Thread类(续)1.1.2Thread类(续)1.1.2Thread类(续)1.1.2Thread类(续)1.1.2Thread类(续)1.1.2Thread类(续)例.在程序中使用线程str.Append(s);}}publicvoidMethod1(){while(true){Thread.Sleep(100);//线程休眠100毫秒AppendString("a");}}publicvoidMethod2(){while(true){Thread.Sleep(100);//线程休眠100毫秒AppendString("b");}}6.启动线程和终止线程按钮的Click事件中添加代码:privatevoidbuttonStart_Click(objectsender,EventArgse){sb.Remove(0,sb.Length);timer1.Enabled=true;thread1=newThread(newThreadStart(Method1));thread2=newThread(newThreadStart(Method2));thread1.Start();thread2.Start();}privatevoidbuttonAbort_Click(objectsender,EventArgse){thread1.Abort();thread1.Join(10);thread2.Abort();thread2.Join(10);}7.timer1的Tick事件代码:privatevoidtimer1_Tick(objectsender,EventArgse){if(thread1.IsAlive==true||thread2.IsAlive==true){richTextBox1.Text=sb.ToString();}else{timer1.Enabled=false;}}键编译并执行,单击启动线程后,等一会再单击终止线程,查看运行结果。1.1.3在一个线程中操作另一个线程的控件1.2IP地址与端口1.2.1TCP/IP网络协议1.2.2IPAddress类与Dns类1.2.2IPAddress类与Dns类(续)1.2.3IPHostEntry类1.2.3IPHostEntry类(续)1.2.4IPEndPoint类1.3套接字1.3套接字(续)1.3套接字(续)1.3.2面向连接的套接字1.3.2面向连接的套接字(续)1.3.3无连接的套接字1.4网络流1.4网络流(续)