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

C#使用Task實(shí)現(xiàn)并行編程

 更新時(shí)間:2022年08月27日 15:10:40   作者:taadis  
這篇文章介紹了C#使用Task實(shí)現(xiàn)并行編程的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

故事背景

透著紗的窗外的陽(yáng)光, 又是一個(gè)星期一.

慢慢來(lái)

一看時(shí)間, 還早, 那么蹦跶起來(lái)

  • 穿衣
  • 刷牙
  • 洗臉

用代碼來(lái)說(shuō)的話, 應(yīng)該是這樣:

// Program.cs
using System;
using System.Diagnostics;
using System.Threading;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("早起三件事開(kāi)始...");
            Stopwatch sw = new Stopwatch();
            sw.Start();
            Dress();
            BrushTeeth();
            WashFace();
            sw.Stop();
            Console.WriteLine($"...早起三件事完成, 總耗時(shí) {sw.Elapsed.Seconds} 秒");
            Console.ReadKey();
        }

        /// <summary>
        /// 穿衣
        /// </summary>
        static void Dress()
        {
            Console.WriteLine($"穿衣開(kāi)始...");
            Stopwatch sw = new Stopwatch();
            sw.Start();
            Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 1));
            sw.Stop();
            Console.WriteLine($"...穿衣完成, 耗時(shí) {sw.Elapsed.Seconds} 秒");
        }

        /// <summary>
        /// 刷牙
        /// </summary>
        static void BrushTeeth()
        {
            Console.WriteLine($"刷牙開(kāi)始...");
            Stopwatch sw = new Stopwatch();
            sw.Start();
            Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 3));
            sw.Stop();
            Console.WriteLine($"...刷牙完成, 耗時(shí) {sw.Elapsed.Seconds} 秒");
        }

        /// <summary>
        /// 洗臉
        /// </summary>
        static void WashFace()
        {
            Console.WriteLine($"洗臉開(kāi)始...");
            Stopwatch sw = new Stopwatch();
            sw.Start();
            Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 5));
            sw.Stop();
            Console.WriteLine($"...系列完成, 耗時(shí) {sw.Elapsed.Seconds} 秒");
        }
    }
}

運(yùn)行之后, 等待一會(huì), 會(huì)看到如下輸出:

早起三件事開(kāi)始...
穿衣開(kāi)始...
...穿衣完成, 耗時(shí) 1 秒
刷牙開(kāi)始...
...刷牙完成, 耗時(shí) 3 秒
洗臉開(kāi)始...
...系列完成, 耗時(shí) 5 秒
...早起三件事完成, 總耗時(shí) 9 秒

一件一件事慢慢來(lái), 總耗時(shí) 9 秒...

趕時(shí)間

一看時(shí)間, 哎呦我去, 快遲到了, 穿衣 & 刷牙 & 洗臉一起來(lái)吧...別問(wèn)我現(xiàn)實(shí)中怎么實(shí)現(xiàn)的

總而言之代碼是這樣滴:

// Program.cs
using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("早起三件事開(kāi)始...");
            Stopwatch sw = new Stopwatch();
            sw.Start();
            Task dressTask = Task.Factory.StartNew(action: Dress);
            Task brushTeethTask = Task.Factory.StartNew(action: BrushTeeth);
            Task washFaceTask = Task.Factory.StartNew(action: WashFace);
            Task.WaitAll(dressTask, brushTeethTask, washFaceTask);
            sw.Stop();
            Console.WriteLine($"...早起三件事完成, 總耗時(shí) {sw.Elapsed.Seconds} 秒");
            Console.ReadKey();
        }

        /// <summary>
        /// 穿衣
        /// </summary>
        static void Dress()
        {
            Console.WriteLine($"穿衣開(kāi)始...");
            Stopwatch sw = new Stopwatch();
            sw.Start();
            Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 1));
            sw.Stop();
            Console.WriteLine($"...穿衣完成, 耗時(shí) {sw.Elapsed.Seconds} 秒");
        }

        /// <summary>
        /// 刷牙
        /// </summary>
        static void BrushTeeth()
        {
            Console.WriteLine($"刷牙開(kāi)始...");
            Stopwatch sw = new Stopwatch();
            sw.Start();
            Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 3));
            sw.Stop();
            Console.WriteLine($"...刷牙完成, 耗時(shí) {sw.Elapsed.Seconds} 秒");
        }

        /// <summary>
        /// 洗臉
        /// </summary>
        static void WashFace()
        {
            Console.WriteLine($"洗臉開(kāi)始...");
            Stopwatch sw = new Stopwatch();
            sw.Start();
            Thread.Sleep(timeout: TimeSpan.FromSeconds(value: 5));
            sw.Stop();
            Console.WriteLine($"...系列完成, 耗時(shí) {sw.Elapsed.Seconds} 秒");
        }
    }
}

啟動(dòng)運(yùn)行之后, 等待一會(huì), 你應(yīng)該會(huì)看到如下輸出:

早起三件事開(kāi)始...
刷牙開(kāi)始...
洗臉開(kāi)始...
穿衣開(kāi)始...
...穿衣完成, 耗時(shí) 1 秒
...刷牙完成, 耗時(shí) 3 秒
...系列完成, 耗時(shí) 5 秒
...早起三件事完成, 總耗時(shí) 5 秒

可以看到, 幾件事一起干了, 總耗時(shí)只用了 5 秒.

總結(jié)一下

幾件事一起干(并行), 比一件一件事慢慢來(lái)

  • 要省時(shí)間, 但是要多寫(xiě)點(diǎn)代碼, 更耗體力.
  • 可以使用 Task 來(lái)輕松實(shí)現(xiàn)并行操作.
  • ...

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • C#/.Net 中快速批量給SQLite數(shù)據(jù)庫(kù)插入測(cè)試數(shù)據(jù)

    C#/.Net 中快速批量給SQLite數(shù)據(jù)庫(kù)插入測(cè)試數(shù)據(jù)

    這篇文章主要介紹了C#/.Net 中快速批量給SQLite數(shù)據(jù)庫(kù)插入測(cè)試數(shù)據(jù),本文直接給出實(shí)例代碼,需要的朋友可以參考下
    2015-06-06
  • c# 反射用法及效率對(duì)比

    c# 反射用法及效率對(duì)比

    這篇文章主要介紹了c# 反射用法及效率對(duì)比,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-02-02
  • C#開(kāi)發(fā)WinForm根據(jù)條件改變DataGridView行顏色

    C#開(kāi)發(fā)WinForm根據(jù)條件改變DataGridView行顏色

    這篇文章介紹了C#開(kāi)發(fā)WinForm根據(jù)條件改變DataGridView行顏色的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C# XML文件操作之相機(jī)參數(shù)保存和讀取

    C# XML文件操作之相機(jī)參數(shù)保存和讀取

    XML是可擴(kuò)展標(biāo)記語(yǔ)言是一種數(shù)據(jù)語(yǔ)言,它將數(shù)據(jù)以一種簡(jiǎn)單的文本格式存儲(chǔ),可以被人類(lèi)和幾乎任何計(jì)算機(jī)理解。本文將利用C#實(shí)現(xiàn)相機(jī)參數(shù)讀取并保存至XML文件,感興趣的可以學(xué)習(xí)一下
    2022-11-11
  • C#中枚舉的特性 FlagAttribute詳解

    C#中枚舉的特性 FlagAttribute詳解

    說(shuō)到FlagsAttribute,源自前幾天看到了一小段代碼,大概意思就是根據(jù)航班政策來(lái)返回哪些配送方式是否可用,根據(jù)這些是否可用來(lái)隱藏或者開(kāi)啟界面的相關(guān)配送方式,不是非常明白,于是今天我們就來(lái)詳細(xì)探討下這個(gè)問(wèn)題
    2018-03-03
  • unity實(shí)現(xiàn)車(chē)方向盤(pán)轉(zhuǎn)動(dòng)效果

    unity實(shí)現(xiàn)車(chē)方向盤(pán)轉(zhuǎn)動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)車(chē)方向盤(pán)轉(zhuǎn)動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#查詢(xún)SqlServer數(shù)據(jù)庫(kù)并返回單個(gè)值的方法

    C#查詢(xún)SqlServer數(shù)據(jù)庫(kù)并返回單個(gè)值的方法

    這篇文章主要介紹了C#查詢(xún)SqlServer數(shù)據(jù)庫(kù)并返回單個(gè)值的方法,涉及C#操作SQLServer數(shù)據(jù)庫(kù)查詢(xún)的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • unity實(shí)現(xiàn)物體延時(shí)出現(xiàn)

    unity實(shí)現(xiàn)物體延時(shí)出現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)物體延時(shí)出現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • c#調(diào)用vc寫(xiě)的ocx控件示例

    c#調(diào)用vc寫(xiě)的ocx控件示例

    這篇文章主要介紹了c#調(diào)用vc寫(xiě)的ocx控件示例,需要的朋友可以參考下
    2014-04-04
  • unity 如何修改材質(zhì)屬性和更換shader

    unity 如何修改材質(zhì)屬性和更換shader

    這篇文章主要介紹了unity 修改材質(zhì)屬性和更換shader的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04

最新評(píng)論