首页 > 编程 > C# > 正文

C#多线程传递参数及任务用法示例

2020-01-24 01:06:56
字体:
来源:转载
供稿:网友

本文实例讲述了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#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结

希望本文所述对大家C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表