C#多線程傳遞參數及義務用法示例。本站提示廣大學習愛好者:(C#多線程傳遞參數及義務用法示例)文章只能為提供參考,不一定能成為您想要的結果。以下是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#法式設計有所贊助。