C#多线程传递参数及任务用法示例
更新时间:2016年06月12日 09:10:16 作者:smartsmile2012
这篇文章主要介绍了C#多线程传递参数及任务用法,结合简单实例形式分析了C#多线程的使用及相关的参数传递与任务创建等使用技巧,需要的朋友可以参考下
脚本之家 / 编程助手:解决程序员“几乎”所有问题!
脚本之家官方知识库 → 点击立即使用
本文实例讲述了C#多线程传递参数及任务用法。分享给大家供大家参考,具体如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ConsoleSample { class Program { static void Main( string [] args) { Console.WriteLine( "这是主线程" ); DateTime dtStart = DateTime.Now; for ( int i = 0; i < 100; i++) { Student s = new Student(); s.name = "张三" + i; s.sex = "男" ; s.age = 28; Thread t = new Thread(ThreadWithParas); t.Start(s); //要给线程传递数据,需某个存储数据的类或结构 } DateTime dtEnd = DateTime.Now; TimeSpan span = (TimeSpan)(dtEnd - dtStart); Console.ReadLine(); Console.WriteLine( "运行的时间 " + span.Milliseconds); Console.ReadLine(); } static void ThreadWithParas( object o) { Student s = o as Student; Console.WriteLine( "这是分线程" + Thread.CurrentThread.ManagedThreadId + " " + s.name + "---" + s.sex + "---" + s.age); } } public class Student { public string name; public string sex; public int age; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleSample { class Program { static void Main( string [] args) { //任务层次结构 Task parent = new Task(ParentTask); parent.Start(); Thread.Sleep(2000); Console.WriteLine(parent.Status); Thread.Sleep(4000); Console.WriteLine(parent.Status); Console.ReadLine(); } //父任务 static void ParentTask() { Console.WriteLine( "task id {0}" , Task.CurrentId); Task child = new Task(ChildTask); // , TaskCreationOptions.DetachedFromParent); child.Start(); Thread.Sleep(1000); Console.WriteLine( "parent started child" ); // Thread.Sleep(3000); } //子任务 static void ChildTask() { Console.WriteLine( "child" ); Thread.Sleep(5000); Console.WriteLine( "child finished" ); } } } |
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
希望本文所述对大家C#程序设计有所帮助。
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
相关文章
DevExpress实现GridControl列头绘制Checkbox的方法
这篇文章主要介绍了DevExpress实现GridControl列头绘制Checkbox的方法,需要的朋友可以参考下2014-08-08
最新评论