【C#】线程学习笔记
来源:互联网 发布:网络推手哪里找电话 编辑:程序博客网 时间:2024/05/16 23:40
线程等待
/*************************************/* Copyright (c) 2012 Daniel Dong * * Author:Daniel Dong * Blog: www.cnblogs.com/danielWise * Email: guofoo@163.com * */using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace SimpleThread{ public class JoiningThread { static Thread SecondThread; static Thread FirstThread; static void First() { for (int i = 1; i <= 250; i++) { Console.Write(i + " "); } } static void Second() { FirstThread.Join(); for (int i = 251; i <= 500; i++) { Console.Write(i + " "); } } public static void Main() { FirstThread = new Thread(new ThreadStart(First)); SecondThread = new Thread(new ThreadStart(Second)); FirstThread.Start(); SecondThread.Start(); Console.ReadLine(); } }}
这个例子的目的是向控制台顺序地输出数字,从1到500. First()方法将会输出前250个数字而Second()方法将会输出后250个。如果不在Second()方法中加FirstThread.Join()的话,执行上下文将会在两个方法之间来回切换,而我们的输出会很乱(试着将这行代码注释掉,然后重新运行一次)。通过Second()方法中调用FirstThread.Join()方法,Second()方法的执行会暂停直到FirstThread执行完。
Join()方法是重载的;它可以接受一个整型数或者一个TimeSpan类型值作为唯一的参数并返回一个布尔型值。调用这两个重载方法的任何一个的效果是线程会阻塞直到另外一个线程完成或者等待时间超时,哪个先发生哪个就起作用。如果线程已经完成那么返回值是true 否则 是false.
该例程转自:http://www.cnblogs.com/danielWise/archive/2012/01/16/2324170.html- 【C#】线程学习笔记
- Linux+C学习笔记之多线程
- VS线程学习笔记(C++)
- 《Windows via C/C++》学习笔记 —— Windows 线程
- 《Windows via C/C++》学习笔记(二线程)
- 《Windows via C/C++》学习笔记(三)线程
- 学习笔记:windows下,用c语言来创建线程
- windows via c/c++ 学习笔记(三) 线程池
- linux c学习笔记----线程创建与终止
- Linux C编程学习笔记(7):线程控制
- linux C 线程学习
- 学习笔记-线程
- 线程学习笔记
- 线程学习笔记
- 线程学习笔记
- java线程学习笔记
- 内核线程学习笔记
- java线程学习笔记
- 手把手教你ARC——iOS/Mac开发ARC入门和使用
- ASSIGN ('(SAPLV60A)TKOMP[]') TO <fs_komp>这样语句的理解和使用
- 11991 - Easy Problem from Rujia Liu?
- Activity横竖屏切换问题
- 快速排序
- 【C#】线程学习笔记
- Fragment和Sqlite问题
- iOS Data Storage Guidelines 和 "do not back up"文件属性
- Tomcat配置文件——server.xml(5)
- Mrs Neat
- C#创建单元测试【图文教程】
- Windows200864位操作系统下的SQLPLUS.EXE 无法找到入口解决办法和Oracle环境变量的设置
- 堆排序
- 【练习向】jQuery基础教程第四版课后练习——Book06_jQuery_通过Ajax发送数据