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

詳解C# parallel中并行計(jì)算的四種寫(xiě)法總結(jié)

 更新時(shí)間:2022年11月28日 08:28:15   作者:dawn  
在C#中,parallel關(guān)鍵字可以用于并行計(jì)算。本文為大家總結(jié)了四種C# parallel并行計(jì)算的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

在C#中,parallel關(guān)鍵字用于并行計(jì)算。

在數(shù)據(jù)集的處理當(dāng)中,我們需要針對(duì)每一行來(lái)進(jìn)行處理,行之間沒(méi)有關(guān)聯(lián),這個(gè)時(shí)候就可以應(yīng)用并行處理來(lái)增加程序的靈活性。

在字典、列表或者數(shù)據(jù)集合當(dāng)中也常見(jiàn)到這樣的應(yīng)用。

下面列舉的是parallel應(yīng)用的四種寫(xiě)法。

效果圖

一般的循環(huán),結(jié)果就是同步循環(huán):

            for (int i=0;i<12;i++)
            {
                textBox1.Text = textBox1.Text + $"循環(huán)數(shù):{i}" + Environment.NewLine;
            }

并行寫(xiě)法1

            Parallel.For(0, 12, i =>
            {
                textBox2.BeginInvoke(() =>
                {
                    textBox2.Text = textBox2.Text + $"循環(huán)數(shù):{i}" + Environment.NewLine;
                });
            });

并行寫(xiě)法2

            int[] x = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
            Parallel.ForEach(x, i =>
            {
                textBox3.BeginInvoke(() =>
                {
                    textBox3.Text = textBox3.Text + $"循環(huán)數(shù):{i}" + Environment.NewLine;
                });
            });

并行寫(xiě)法3

            Parallel.Invoke(
            new Action(() =>
            {
                for (int i = 0; i < 4; i++)
                {
                    textBox4.BeginInvoke(() =>
                    {
                        textBox4.Text = textBox4.Text + $"循環(huán)數(shù):{i},1-4" + Environment.NewLine;
                    });
                }
            }),
            new Action(() =>
            {
                for (int i = 4; i < 8; i++)
                {
                    textBox4.BeginInvoke(() =>
                    {
                        textBox4.Text = textBox4.Text + $"循環(huán)數(shù):{i},4-8" + Environment.NewLine;
                    });
                }
 
            }),
            new Action(() =>
            {
                for (int i = 8; i < 12; i++)
                {
                    textBox4.BeginInvoke(() =>
                    {
                        textBox4.Text = textBox4.Text + $"循環(huán)數(shù):{i},8-11" + Environment.NewLine;
                    });
                }
            }));

上面的寫(xiě)法不明了,可以單獨(dú)寫(xiě)成函數(shù)定義樣式:

        private void func1()
        {
            for (int i = 0; i < 4; i++)
            {
                textBox4.BeginInvoke(() =>
                {
                    textBox4.Text = textBox4.Text + $"循環(huán)數(shù):{i},0-3" + Environment.NewLine;
                });
            }
        }
 
        private void func2()
        {
            for (int i = 4; i < 8; i++)
            {
                textBox4.BeginInvoke(() =>
                {
                    textBox4.Text = textBox4.Text + $"循環(huán)數(shù):{i},4-7" + Environment.NewLine;
                });
            }
        }
 
        private void func3()
        {
            for (int i = 8; i < 12; i++)
            {
                textBox4.BeginInvoke(() =>
                {
                    textBox4.Text = textBox4.Text + $"循環(huán)數(shù):{i},8-11" + Environment.NewLine;
                });
            }
        }

然后調(diào)用,這樣看就清晰多了:

Parallel.Invoke(func1, func2, func3);

并行寫(xiě)法4

            int[] x = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
            await Parallel.ForEachAsync(x,new ParallelOptions() { MaxDegreeOfParallelism=3},async (x,_) =>
            {
                textBox4.BeginInvoke(async () =>
                {
                   textBox4.Text = textBox4.Text + $"循環(huán)數(shù):{x}" + Environment.NewLine;
                });
            }
            );

實(shí)際編寫(xiě)過(guò)程中,可以根據(jù)自己的喜好來(lái)使用這些語(yǔ)法糖。

到此這篇關(guān)于詳解C# parallel中并行計(jì)算的四種寫(xiě)法總結(jié)的文章就介紹到這了,更多相關(guān)C# parallel并行計(jì)算內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Unity3D UI Text得分?jǐn)?shù)字增加的實(shí)例代碼

    Unity3D UI Text得分?jǐn)?shù)字增加的實(shí)例代碼

    這篇文章主要介紹了Unity3D UI Text得分?jǐn)?shù)字增加方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • C#?OpenCvSharp?顏色反轉(zhuǎn)實(shí)例詳解

    C#?OpenCvSharp?顏色反轉(zhuǎn)實(shí)例詳解

    OpenCVSharp是OpenCV的.NET?wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的樣例參考,其采用LGPL發(fā)行,對(duì)商業(yè)應(yīng)用友好(基本上相當(dāng)于BSD),這篇文章主要介紹了C#?OpenCvSharp?顏色反轉(zhuǎn)的知識(shí),需要的朋友可以參考下
    2024-02-02
  • C#中radioButton控件使用詳細(xì)方法示例

    C#中radioButton控件使用詳細(xì)方法示例

    這篇文章主要給大家介紹了關(guān)于C#中radioButton控件使用詳細(xì)方法的相關(guān)資料,RadioButton是圓形單選按鈕,在同一個(gè)容器中,單選項(xiàng)互斥,不同容器中的RadioButton互相獨(dú)立,需要的朋友可以參考下
    2023-10-10
  • 基于C#制作一個(gè)飛機(jī)大戰(zhàn)小游戲的全過(guò)程

    基于C#制作一個(gè)飛機(jī)大戰(zhàn)小游戲的全過(guò)程

    飛機(jī)大戰(zhàn)小游戲詳細(xì)大家都不陌生,下面這篇文章主要給大家介紹了關(guān)于基于C#制作一個(gè)飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • C# WinForm控件對(duì)透明圖片重疊時(shí)出現(xiàn)圖片不透明的簡(jiǎn)單解決方法

    C# WinForm控件對(duì)透明圖片重疊時(shí)出現(xiàn)圖片不透明的簡(jiǎn)單解決方法

    這篇文章主要介紹了C# WinForm控件對(duì)透明圖片重疊時(shí)出現(xiàn)圖片不透明的簡(jiǎn)單解決方法,結(jié)合實(shí)例形式分析了WinForm圖片重疊后造成圖片不透明的原因與相應(yīng)的解決方法,需要的朋友可以參考下
    2016-06-06
  • 基于XSLT調(diào)試的相關(guān)問(wèn)題

    基于XSLT調(diào)試的相關(guān)問(wèn)題

    本篇文章是對(duì)XSLT調(diào)試的相關(guān)問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#中BackgroundWorker類(lèi)用法總結(jié)

    C#中BackgroundWorker類(lèi)用法總結(jié)

    本文詳細(xì)講解了C#中BackgroundWorker類(lèi)用法總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • C#中DataBindings用法實(shí)例分析

    C#中DataBindings用法實(shí)例分析

    這篇文章主要介紹了C#中DataBindings用法,結(jié)合實(shí)例形式詳細(xì)分析了DataBindings綁定數(shù)據(jù)源及刷新數(shù)據(jù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • c# Bitmap轉(zhuǎn)bitmapImage高效方法

    c# Bitmap轉(zhuǎn)bitmapImage高效方法

    本文主要介紹了c# Bitmap轉(zhuǎn)bitmapImage高效方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • implicit關(guān)鍵字做自定義類(lèi)型隱式轉(zhuǎn)換的方法

    implicit關(guān)鍵字做自定義類(lèi)型隱式轉(zhuǎn)換的方法

    implicit 關(guān)鍵字用于聲明隱式的用戶定義類(lèi)型轉(zhuǎn)換運(yùn)算符。如果轉(zhuǎn)換過(guò)程可以確保不會(huì)造成數(shù)據(jù)丟失,則可使用該關(guān)鍵字在用戶定義類(lèi)型和其他類(lèi)型之間進(jìn)行隱式轉(zhuǎn)換,這篇文章就給大家詳細(xì)介紹implicit關(guān)鍵字做自定義類(lèi)型隱式轉(zhuǎn)換的方法,需要的朋友可以參考下
    2015-08-08

最新評(píng)論