C#多線程傳遞參數(shù)及任務(wù)用法示例
更新時(shí)間:2016年06月12日 09:10:16 作者:smartsmile2012
這篇文章主要介紹了C#多線程傳遞參數(shù)及任務(wù)用法,結(jié)合簡(jiǎn)單實(shí)例形式分析了C#多線程的使用及相關(guān)的參數(shù)傳遞與任務(wù)創(chuàng)建等使用技巧,需要的朋友可以參考下
本文實(shí)例講述了C#多線程傳遞參數(shù)及任務(wù)用法。分享給大家供大家參考,具體如下:
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); //要給線程傳遞數(shù)據(jù),需某個(gè)存儲(chǔ)數(shù)據(jù)的類或結(jié)構(gòu)
}
DateTime dtEnd = DateTime.Now;
TimeSpan span = (TimeSpan)(dtEnd - dtStart);
Console.ReadLine();
Console.WriteLine("運(yùn)行的時(shí)間 " + 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)
{
//任務(wù)層次結(jié)構(gòu)
Task parent = new Task(ParentTask);
parent.Start();
Thread.Sleep(2000);
Console.WriteLine(parent.Status);
Thread.Sleep(4000);
Console.WriteLine(parent.Status);
Console.ReadLine();
}
//父任務(wù)
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);
}
//子任務(wù)
static void ChildTask()
{
Console.WriteLine("child");
Thread.Sleep(5000);
Console.WriteLine("child finished");
}
}
}
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
關(guān)于C#連接FTP時(shí)路徑問題的解決方法
最近在工作中遇到一個(gè)需求,需要利用C#連接FTP,在連接過程中遇到一個(gè)問題,所以下面這篇文章主要給大家介紹了關(guān)于C#連接FTP時(shí)路徑問題的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08
ASP.NET總結(jié)C#中7種獲取當(dāng)前路徑的方法
本文主要介紹了7種獲取當(dāng)前路徑的方法,并做了代碼演示,分享給大家,感興趣的朋友可以參考一下。2016-03-03
Unity3D實(shí)現(xiàn)人物移動(dòng)示例
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)人物移動(dòng)示例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01

