C#多线程传递参数及任务 C#多线程传递参数及任务用法示例
smartsmile2012 人气:0想了解C#多线程传递参数及任务用法示例的相关内容吗,smartsmile2012在本文为您仔细讲解C#多线程传递参数及任务的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:C#,多线程,传递参数,任务,下面大家一起来学习吧。
本文实例讲述了C#多线程传递参数及任务用法。分享给大家供大家参考,具体如下:
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; } }
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#程序设计有所帮助。
加载全部内容