• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 使用Barrier来控制线程同步示例

使用Barrier来控制线程同步示例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了barrier,barrier是什么意思,great barrier reef,barrier repair,barrier reef等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

可能的输出:

All jobs have been done.
</div>

代码:

class BarrierDemo
{
    static Barrier _barrier = new Barrier (5, barrier => {
            Console.WriteLine();
            Console.WriteLine("All jobs have been done.");
        });

    static void Main()
    {
        Random r = new Random();

        new Thread(Work).Start(new MyThreadArgs { ThreadId = "A",
            WaitTimeCount = r.Next(1000) });
        new Thread(Work).Start(new MyThreadArgs {ThreadId = "B",
            WaitTimeCount = r.Next(1000) });
        new Thread(Work).Start(new MyThreadArgs {ThreadId = "C",
            WaitTimeCount = r.Next(1000) });
        new Thread(Work).Start(new MyThreadArgs {ThreadId = "D",
            WaitTimeCount = r.Next(1000) });
        new Thread(Work).Start(new MyThreadArgs {ThreadId = "E",
            WaitTimeCount = r.Next(1000) });
    }

    static void Work(object obj)
    {
        MyThreadArgs args = (MyThreadArgs) obj;

        Console.WriteLine("Working on Thread " + args.ThreadId);
        Console.WriteLine("Thread " + args.ThreadId +
            " will sleep for " + args.WaitTimeCount + " seconds.");

        Thread.Sleep(waitTime);

        _barrier.SignalAndWait();
    }

    class MyThreadArgs
    {
        public string ThreadId { get; set; }
        public int WaitTimeCount { get; set; }
    }
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 使用Barrier来控制线程同步示例

相关文章

  • 2017-05-28深入解析C#编程中泛型委托的使用
  • 2017-05-28C# Dynamic关键字之:dynamic为什么比反射快的详解
  • 2017-05-28WinForm实现为ComboBox绑定数据源并提供下拉提示功能
  • 2017-05-28C# 字符串多行显示/文本换行以textbox为例讲解
  • 2017-05-28c#判断网络连接状态
  • 2017-05-28C# httpwebrequest访问HTTPS错误处理方法
  • 2017-05-28关于C#中排序函数的总结
  • 2017-05-28c# 值类型实例构造器
  • 2017-05-28C#中把英文字母转换为大写或小写的方法
  • 2017-05-28C# 利用Aspose.Words.dll将 Word 转成PDF

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现简单的井字游戏实例
    • C#计算程序执行过程花费时间的方法
    • WinForm绘制圆角的方法
    • C#编程中使用设计模式中的原型模式的实例讲解
    • C#实现将千分位字符串转换成数字的方法
    • 详解C#把DataTable中数据一次插入数据库的方法
    • DevExpress实现TreeList向上递归获取符合条件的父节点
    • C#给图片添加水印完整实例
    • WPF微信聊天和通讯录按钮样式代码分享
    • C#使用HtmlAgilityPack抓取糗事百科内容实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有