欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中多線程調(diào)用方式的幾種實(shí)現(xiàn)

 更新時(shí)間:2025年09月30日 08:56:14   作者:鈴兒~響叮當(dāng)  
本文主要介紹了C#中幾種多線程調(diào)用方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1. 樣例代碼

public class TestTasks
{
    //1. 無(wú)參 無(wú)返回值
    public void Task1()
    {
        Debug.WriteLine("-------Task1.Start...");
        Thread.Sleep(3000);
        Debug.WriteLine("-------Task1.End...");
    }
    //2. 有參 無(wú)返回值
    public void Task2(int param)
    {
        Debug.WriteLine("-------Task2.Start..." + param);
        Thread.Sleep(3000);
        Debug.WriteLine("-------Task2.End...");
    }
    //3. 有參 有返回值
    public int Task3(int param)
    {
        Debug.WriteLine("-------Task3.Start..." + param);
        Thread.Sleep(3000);
        Debug.WriteLine("-------Task3.End...");
        return param + 1;
    }
}

2. 方式1:Task 方式(推薦)

TestTasks tt = new TestTasks();

//t1:
Task t1 = Task.Factory.StartNew(tt.Task1);

//t2: 傳參用lambda表達(dá)式
Task t2 = Task.Factory.StartNew(() => tt.Task2(102));

//等待 t1 t2 執(zhí)行完成之后,再執(zhí)行 t3.
Task.WaitAll(t1, t2);

//t3: 帶返回值
Task<int> t3 = Task.Factory.StartNew(() => tt.Task3(103));  
Debug.WriteLine("-------t3: " + t3.Result);

3. 方式2:Async / Await 方式 (較為推薦)

TestTasks tt = new TestTasks();

//添加 await,  Task 依次執(zhí)行。 
await Task.Factory.StartNew(tt.Task1);

await Task.Factory.StartNew(() => tt.Task2(102));

var result = await Task.Factory.StartNew(() => tt.Task3(103));  
Debug.WriteLine("-------t3: " + result);

4. 方式3:創(chuàng)建線程

TestTasks tt = new TestTasks();
new Thread(tt.Task1).Start();
//針對(duì)有參數(shù)的任務(wù),需要用Lambda進(jìn)行包裝或者使用ParameterizedThreadStart對(duì)象. 
new Thread(x => tt.Task2((int)x)).Start(100);
//但是無(wú)法執(zhí)行帶返回值的方法。

5. 方式4:線程池

TestTasks tt = new TestTasks();
ThreadPool.QueueUserWorkItem(o => tt.Task1());
ThreadPool.QueueUserWorkItem(o => tt.Task2(102));
ThreadPool.QueueUserWorkItem(o => tt.Task3(103));

到此這篇關(guān)于C#中多線程調(diào)用方式的幾種實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C# 多線程調(diào)用方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 面向?qū)ο蟮幕驹瓌t

    C# 面向?qū)ο蟮幕驹瓌t

    什么是面向?qū)ο蟮幕驹瓌t?設(shè)計(jì)原則是基本的工具,應(yīng)用這些規(guī)則可以使你的代碼更加靈活、更容易維護(hù),更容易擴(kuò)展。
    2009-11-11
  • 淺談C# 類的繼承

    淺談C# 類的繼承

    本文主要介紹了C# 類的繼承相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • C#實(shí)現(xiàn)餐飲管理系統(tǒng)完整版

    C#實(shí)現(xiàn)餐飲管理系統(tǒng)完整版

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)餐飲管理系統(tǒng)的完整版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • c# rsa加密解密詳解

    c# rsa加密解密詳解

    這篇文章主要介紹了c# rsa加密解密的的相關(guān)資料,文中代碼非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • C#使用FFmpeg進(jìn)行視頻旋轉(zhuǎn)的代碼實(shí)現(xiàn)

    C#使用FFmpeg進(jìn)行視頻旋轉(zhuǎn)的代碼實(shí)現(xiàn)

    在視頻處理領(lǐng)域,FFmpeg被廣泛應(yīng)用于音視頻的編解碼、轉(zhuǎn)碼、剪切、合并、旋轉(zhuǎn)等任務(wù),而C#作為一種常用的開(kāi)發(fā)語(yǔ)言,能夠輕松集成FFmpeg庫(kù),為開(kāi)發(fā)者提供強(qiáng)大的音視頻處理能力,本文將帶你從零開(kāi)始,深入講解如何在C#中使用FFmpeg進(jìn)行視頻旋轉(zhuǎn),需要的朋友可以參考下
    2025-05-05
  • Unity ScrollView實(shí)現(xiàn)無(wú)限滑動(dòng)效果

    Unity ScrollView實(shí)現(xiàn)無(wú)限滑動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)無(wú)限滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • unity自定義彈出框功能

    unity自定義彈出框功能

    這篇文章主要為大家詳細(xì)介紹了unity自定義彈出框功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • c#實(shí)現(xiàn)萬(wàn)年歷示例分享 萬(wàn)年歷農(nóng)歷查詢

    c#實(shí)現(xiàn)萬(wàn)年歷示例分享 萬(wàn)年歷農(nóng)歷查詢

    這篇文章主要介紹了c#實(shí)現(xiàn)萬(wàn)年歷的方法,可以顯示農(nóng)歷、節(jié)氣、節(jié)日、星座、星宿、屬相、生肖、閏年月、時(shí)辰,大家參考使用吧
    2014-01-01
  • 驗(yàn)證本機(jī)的excel版本的C#代碼

    驗(yàn)證本機(jī)的excel版本的C#代碼

    安裝的excel的版本,0為沒(méi)有安裝,大于1說(shuō)明安裝了多個(gè). 需要的朋友可以參考下。
    2011-08-08
  • C#之List集合去重復(fù)對(duì)象的實(shí)現(xiàn)方法

    C#之List集合去重復(fù)對(duì)象的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#之List集合去重復(fù)對(duì)象的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06

最新評(píng)論