当前位置: 首页 > news >正文

福州企业网站维护上海缘魁网站建设

福州企业网站维护,上海缘魁网站建设,网站备案幕布照片,住房和城乡建设部网站安广东省在 C# 中,Thread.Join 是一个非常有用的方法,它可以让主线程(调用线程)等待子线程(被调用线程)执行完毕后再继续执行。 1、经典示例1 using System; using System.Threading;public class Example {stati…

在 C# 中,Thread.Join 是一个非常有用的方法,它可以让主线程(调用线程)等待子线程(被调用线程)执行完毕后再继续执行。

1、经典示例1

using System;
using System.Threading;public class Example
{static Thread thread1, thread2;public static void Main(){thread1 = new Thread(ThreadProc);thread1.Name = "Thread1";thread1.Start();thread2 = new Thread(ThreadProc);thread2.Name = "Thread2";thread2.Start();Console.ReadKey();}private static void ThreadProc(){Console.WriteLine("\nCurrent thread: {0}", Thread.CurrentThread.Name);if (Thread.CurrentThread.Name == "Thread1" &&thread2.ThreadState != ThreadState.Unstarted){Console.WriteLine("thread2.Join");thread2.Join(); }Thread.Sleep(1000);Console.WriteLine("\nCurrent thread: {0}", Thread.CurrentThread.Name);Console.WriteLine("Thread1: {0}", thread1.ThreadState);Console.WriteLine("Thread2: {0}\n", thread2.ThreadState);}
}

运行结果


Current thread: Thread1
thread2.JoinCurrent thread: Thread2Current thread: Thread2
Thread1: WaitSleepJoin
Thread2: RunningCurrent thread: Thread1
Thread1: Running
Thread2: Stopped

这个例子演示了“Thread.Join 会阻塞调用线程,直到被调用线程完成执行”

2、经典示例2

using System.Threading;
using System;class TestThread
{private static void ThreadTst(){Console.WriteLine("  " + Thread.CurrentThread.Name + "   开始执行");for (int i = 0; i < 10; i++){Console.WriteLine("     " + Thread.CurrentThread.Name + "   i =  " + i);Thread.Sleep(10);}Console.WriteLine("  " + Thread.CurrentThread.Name + "   执行完毕");}static void Main(string[] args){//程序调用了Main()函数时,就起动了一个进程,同时也启动了一个线程[这个线程就是主线程].Thread.CurrentThread.Name = "MainThread";//创建第一个线程Thread tA = new Thread(new ThreadStart(TestThread.ThreadTst));tA.Name = "线程A";Thread tB = new Thread(new ThreadStart(TestThread.ThreadTst));tB.Name = "线程B";Thread tC = new Thread(new ThreadStart(TestThread.ThreadTst));tC.Name = "线程C";Thread tD = new Thread(new ThreadStart(TestThread.ThreadTst));tD.Name = "线程D";for (int z = 0; z < 20; z++){if (z == 3){Console.WriteLine("tA.Start");tA.Start();Console.WriteLine("tB.Start");tB.Start();}else if (z == 6){Console.WriteLine("tA.Join");tA.Join();Console.WriteLine("tB.Join");tB.Join();}else if (z == 9){Console.WriteLine("tC.Start");tC.Start();Console.WriteLine("tD.Start");tD.Start();}else{Console.WriteLine(Thread.CurrentThread.Name + "   z =  " + z);}}Console.Read();}
}

运行结果

MainThread   z =  0
MainThread   z =  1
MainThread   z =  2
tA.Start
tB.Start
MainThread   z =  4
MainThread   z =  5
tA.Join线程A   开始执行线程A   i =  0线程B   开始执行   ->注意这里并没有返回调用线程,这里是线程B线程B   i =  0线程A   i =  1线程B   i =  1线程A   i =  2线程B   i =  2线程A   i =  3线程B   i =  3线程A   i =  4线程B   i =  4线程A   i =  5线程B   i =  5线程A   i =  6线程B   i =  6线程A   i =  7线程B   i =  7线程A   i =  8线程B   i =  8线程B   i =  9线程A   i =  9线程A   执行完毕线程B   执行完毕
tB.Join              ->注意线程B已经执行完毕了
MainThread   z =  7
MainThread   z =  8
tC.Start
tD.Start
MainThread   z =  10
MainThread   z =  11
MainThread   z =  12
MainThread   z =  13
MainThread   z =  14
MainThread   z =  15
MainThread   z =  16
MainThread   z =  17
MainThread   z =  18
MainThread   z =  19线程C   开始执行    ->线程C是等主线程结束后才开始执行的线程C   i =  0线程D   开始执行线程D   i =  0线程C   i =  1线程D   i =  1线程C   i =  2线程D   i =  2线程C   i =  3线程D   i =  3线程C   i =  4线程D   i =  4线程C   i =  5线程D   i =  5线程C   i =  6线程D   i =  6线程C   i =  7线程D   i =  7线程C   i =  8线程D   i =  8线程C   i =  9线程D   i =  9线程C   执行完毕线程D   执行完毕

这个例子主要目的是对比使用join(线程A、)和未使用join(线程C)的区别

http://www.yayakq.cn/news/787703/

相关文章:

  • 网站建设免费课程网络服务
  • 网站设计书wordpress 常用主题
  • 网站建设费怎么做分录如何建设dj网站
  • 蓟州区建设银行官方网站樟木头做网站
  • 呼和浩特网站建设设计无极网站建设
  • 软件外包公司容易进吗seo云优化公司
  • 网站备案符号潮安区住房和城乡建设局网站
  • 中国河北建设银行官网招聘网站集和品牌设计公司官网
  • 做网站必看的外国书籍深圳高端设计公司
  • 手机免费制作网站模板广州小程序设计制作
  • 长沙建设网站的公司软件定制报价单
  • tomcat做静态网站做响应式网站的流程
  • 室内设计网站论坛连云港建设局电力网站
  • 南宁网站推广网站悬浮代码
  • 佛山哪里有网站开发群晖网站建设处理错误500
  • 网站开发环境准备网站流量是怎么赚钱的
  • 如何学做网站优化菲斯曼售后服务中心
  • .net 网站开发网站建设要知道的
  • 奔奔网站建设百度网址大全官网
  • 西安网站排名推广汕头seo
  • 简单房地产网站帝国做的电影网站
  • 电子商务网站开发课程wordpress网站地图百度插件
  • 网站维护工作计划seo发包排名软件
  • dnf做任务解除制裁网站从零开始制作 wordpress 主题
  • 站长之家 seo查询宿州网站建设公司
  • 长春建站网站个人两字印章在线制作网站
  • 韩国做美食网站有哪些域名备案必须要有服务器吗
  • 锦州网站建设哪家好asp.net网站开发文档
  • 湘潭做网站 去磐石网络闲鱼钓鱼网站怎么做
  • 网站设计注意事项网站开发适配