Rumah pembangunan bahagian belakang Tutorial C#.Net C# 并行任务之Parallel类的实例介绍

C# 并行任务之Parallel类的实例介绍

Jun 23, 2017 pm 03:13 PM
.net Tugasan selari

一、Parallel类

      Parallel类提供了数据和任务的并行性;

二、Paraller.For()

      Paraller.For()方法类似于C#的for循环语句,也是多次执行一个任务。使用Paraller.For()方法,可以并行运行迭代,迭代的顺序没有定义。

      在For()方法中,前两个参数是固定的,这两个参数定义了循环的开头和结束。首先描述它的第一个方法For(int,int,Action),前面两个参数代表循环的开头和介绍,第三个参数是个委托,整数参数是循环的迭代次数,该参数被传递给委托引用的方法。Paraller.For()方法的返回类型是ParallelLoopResult结构,它提供了循环是否结束的信息和最低迭代的索引(返回一个表示从中调用 Break 语句的最低迭代的整数)。先写个例子:

            ParallelLoopResult result = Parallel.For(0, 10, i =>{
                Console.WriteLine("迭代次数:{0},任务ID:{1},线程ID:{2}", i, Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
                Thread.Sleep(10);
            });

            Console.WriteLine("是否完成:{0}", result.IsCompleted);
            Console.WriteLine("最低迭代:{0}", result.LowestBreakIteration);
Salin selepas log masuk

输出结果如下:

可以看到,该委托方法运行了10次,顺序也是不能被保证的。但是最低迭代并没有数据出来,这是因为他是返回调用 Break 语句的最低迭代的整数,在这我们并没有break。如果需要才执行过程中提前中断For()方法,就可以使用ParallelLoopState来实现,For(int,int,Action)。就上面的例子改一下:

            ParallelLoopResult result = Parallel.For(0, 10, (i, state) =>{
                Console.WriteLine("迭代次数:{0},任务ID:{1},线程ID:{2}", i, Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
                Thread.Sleep(10);if (i > 5)
                    state.Break();
            });

            Console.WriteLine("是否完成:{0}", result.IsCompleted);
            Console.WriteLine("最低迭代:{0}", result.LowestBreakIteration);
Salin selepas log masuk

输出结果如下:

三、Parallel.ForEach()

      Paraller.ForEach()方法遍历实现了IEnumerable的集合,其方法类似于 foreach的语句,但以异步方式遍历,这里也没有确定遍历顺序。首先描述它的第一个方法,Paraller.ForEach(IEnumerable,Action),先看下面的例子;

            string[] data = { "str1", "str2", "str3" };
            ParallelLoopResult result = Parallel.ForEach<string>(data, str =>  {
                  Console.WriteLine(str);
              });
            Console.WriteLine("是否完成:{0}", result.IsCompleted);
            Console.WriteLine("最低迭代:{0}", result.LowestBreakIteration);
Salin selepas log masuk

输出结果如下:

它也可以像For一样传入迭代次数和ParallelLoopState的,方法是ForEach(IEnumerable source, Action body),接着在上面的例子改动

            string[] data = { "str1", "str2", "str3", "str4", "str5" };
            ParallelLoopResult result = Parallel.ForEach<string>(data, (str, state, i) =>  {
                  Console.WriteLine("迭代次数:{0},{1}", i, str);                  if (i > 3)
                      state.Break();
              });
            Console.WriteLine("是否完成:{0}", result.IsCompleted);
            Console.WriteLine("最低迭代:{0}", result.LowestBreakIteration);
Salin selepas log masuk

输出结果如下:

四、Parallel.Invoke()

      Parallel.Invoke()方法,它提供了任务并行性模式。Paraller.Invoke()方法允许传递一个Action委托数组,在其中可以指定应运行的方法,看下面的例子

            Parallel.Invoke(() =>{
                Thread.Sleep(100);
                Console.WriteLine("method1");
            }, () =>{
                Thread.Sleep(10);
                Console.WriteLine("method2");
            });
Salin selepas log masuk

输出结果如下:

五、结语

      Parallel.For()和Paraller.ForEach()方法在每次迭代中调用相同的代码,而Parallel.Invoke()方法允许同时调用不同的方法。Parallel.ForEach()用于数据并行性,Parallel.Invoke()用于任务并行性;

      

 

 

      

Atas ialah kandungan terperinci C# 并行任务之Parallel类的实例介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyelesaikan misi koridor seram dalam Simulator Kambing 3 Bagaimana untuk menyelesaikan misi koridor seram dalam Simulator Kambing 3 Feb 25, 2024 pm 03:40 PM

Koridor Keganasan ialah misi dalam Simulator Kambing 3. Bagaimanakah anda boleh menyelesaikan misi ini dengan kaedah pelepasan terperinci dan proses yang sepadan, dan dapat menyelesaikan cabaran yang sepadan dalam misi ini Panduan untuk mempelajari maklumat berkaitan. Simulator Kambing 3 Panduan Koridor Keganasan 1. Mula-mula, pemain perlu pergi ke Silent Hill di sudut kiri atas peta. 2. Di sini anda boleh melihat sebuah rumah dengan tulisan RESTSTOP di atas bumbung Pemain perlu mengendalikan kambing untuk memasuki rumah ini. 3. Selepas masuk ke dalam bilik, kami mula-mula pergi terus ke hadapan, dan kemudian belok kanan. Ada pintu di hujung sini, dan kami terus masuk dari sini. 4. Selepas masuk, kita juga perlu berjalan ke hadapan dan kemudian belok ke kanan apabila sampai ke pintu di sini, pintu akan ditutup dan kita perlu berpatah balik.

Betulkan: Operator menolak ralat permintaan dalam Windows Task Scheduler Betulkan: Operator menolak ralat permintaan dalam Windows Task Scheduler Aug 01, 2023 pm 08:43 PM

Untuk mengautomasikan tugas dan mengurus berbilang sistem, perisian perancangan tugas ialah alat yang berharga dalam senjata anda, terutamanya sebagai pentadbir sistem. Penjadual Tugas Windows melakukan tugas dengan sempurna, tetapi baru-baru ini ramai orang telah melaporkan ralat permintaan yang ditolak oleh operator. Masalah ini wujud dalam semua lelaran sistem pengendalian, dan walaupun ia telah dilaporkan dan dilindungi secara meluas, tiada penyelesaian yang berkesan. Teruskan membaca untuk mengetahui perkara yang mungkin berkesan untuk orang lain! Apakah permintaan dalam Penjadual Tugas 0x800710e0 yang dinafikan oleh pengendali atau pentadbir? Penjadual Tugas membolehkan mengautomasikan pelbagai tugas dan aplikasi tanpa input pengguna. Anda boleh menggunakannya untuk menjadualkan dan mengatur aplikasi tertentu, mengkonfigurasi pemberitahuan automatik, membantu menghantar mesej dan banyak lagi. ia

Bagaimana untuk melepasi misi Imperial Tomb dalam Goat Simulator 3 Bagaimana untuk melepasi misi Imperial Tomb dalam Goat Simulator 3 Mar 11, 2024 pm 01:10 PM

Simulator Kambing 3 ialah permainan dengan permainan simulasi klasik, membolehkan pemain mengalami sepenuhnya keseronokan simulasi aksi kasual Permainan ini juga mempunyai banyak tugas khas yang menarik Antaranya, tugas Makam Imperial Kambing memerlukan pemain mencari menara loceng. Sesetengah pemain tidak pasti bagaimana untuk mengendalikan tiga jam pada masa yang sama Berikut adalah panduan untuk misi Makam dalam Simulator Kambing 3 Panduan untuk misi Makam dalam Simulator Kambing 3 adalah untuk membunyikan loceng mengikut tertib. Perluasan langkah terperinci 1. Mula-mula, pemain perlu membuka peta dan pergi ke Tanah Perkuburan Wuqiu. 2. Kemudian naik ke menara loceng akan ada tiga loceng di dalam. 3. Kemudian, mengikut urutan daripada terbesar kepada terkecil, ikut kebiasaan 222312312. 4. Selepas selesai mengetuk, anda boleh menyelesaikan misi dan membuka pintu untuk mendapatkan lightsaber.

Bagaimana untuk melakukan misi menyelamat Steve dalam Goat Simulator 3 Bagaimana untuk melakukan misi menyelamat Steve dalam Goat Simulator 3 Feb 25, 2024 pm 03:34 PM

Rescue Steve ialah tugas unik dalam Goat Simulator 3. Apakah sebenarnya yang perlu dilakukan untuk menyelesaikannya? Tugas ini agak mudah, tetapi kami perlu berhati-hati agar tidak salah faham maksudnya. Di sini kami akan membawa anda untuk menyelamatkan Steve dalam Goat Simulator 3 Panduan tugas dapat menyelesaikan tugasan yang berkaitan dengan lebih baik. Simulator Kambing 3 Menyelamatkan Steve Strategi Misi 1. Mula-mula datang ke mata air panas di sudut kanan bawah peta. 2. Selepas tiba di kolam air panas, anda boleh mencetuskan tugas untuk menyelamatkan Steve. 3. Perhatikan bahawa terdapat seorang lelaki di kolam air panas Walaupun namanya Steve, dia bukan sasaran misi ini. 4. Cari ikan bernama Steve di kolam air panas ini dan bawa ia ke darat untuk menyelesaikan tugasan ini.

Di manakah saya boleh mencari tugas kumpulan peminat Douyin? Adakah kelab peminat Douyin akan kehilangan tahap? Di manakah saya boleh mencari tugas kumpulan peminat Douyin? Adakah kelab peminat Douyin akan kehilangan tahap? Mar 07, 2024 pm 05:25 PM

Sebagai salah satu platform media sosial yang paling popular pada masa ini, TikTok telah menarik sejumlah besar pengguna untuk mengambil bahagian. Di Douyin, terdapat banyak tugas kumpulan peminat yang pengguna boleh selesaikan untuk mendapatkan ganjaran dan faedah tertentu. Jadi, di manakah saya boleh mencari tugas kelab peminat Douyin? 1. Di manakah saya boleh mencari tugas kelab peminat Douyin? Untuk mencari tugas kumpulan peminat Douyin, anda perlu melawati laman utama peribadi Douyin. Pada halaman utama, anda akan melihat pilihan yang dipanggil "Kelab Peminat." Klik pilihan ini dan anda boleh menyemak imbas kumpulan peminat yang telah anda sertai dan tugasan yang berkaitan. Dalam lajur tugas kelab peminat, anda akan melihat pelbagai jenis tugasan, seperti suka, ulasan, perkongsian, pemajuan, dsb. Setiap tugasan mempunyai ganjaran dan keperluan yang sepadan Secara umumnya, selepas menyelesaikan tugasan, anda akan menerima sejumlah syiling emas atau mata pengalaman.

Bagaimana untuk menghentikan kemas kini proses Pengurus Tugas dan mematikan tugas dengan lebih mudah dalam Windows 11 Bagaimana untuk menghentikan kemas kini proses Pengurus Tugas dan mematikan tugas dengan lebih mudah dalam Windows 11 Aug 20, 2023 am 11:05 AM

Cara Menjeda Kemas Kini Proses Pengurus Tugas dalam Windows 11 dan Windows 10 Tekan CTRL+Kekunci Tetingkap+Padam untuk membuka Pengurus Tugas. Secara lalai, Pengurus Tugas akan membuka tetingkap Proses. Seperti yang anda lihat di sini, semua apl bergerak tanpa henti dan sukar untuk menunjukkannya apabila anda ingin memilihnya. Jadi, tekan CTRL dan tahan, ini akan menjeda pengurus tugas. Anda masih boleh memilih aplikasi dan juga tatal ke bawah, tetapi anda mesti menahan butang CTRL pada setiap masa.

Analisis Masa Pentagon Warrior! Universiti Tsinghua mencadangkan TimesNet: terkemuka dalam ramalan, pengisian, pengelasan dan pengesanan Analisis Masa Pentagon Warrior! Universiti Tsinghua mencadangkan TimesNet: terkemuka dalam ramalan, pengisian, pengelasan dan pengesanan Apr 11, 2023 pm 07:34 PM

Mencapai kepelbagaian tugas ialah isu teras dalam penyelidikan model asas pembelajaran mendalam, dan juga merupakan salah satu fokus utama dalam hala tuju terkini model besar. Walau bagaimanapun, dalam bidang siri masa, pelbagai jenis tugasan analisis sangat berbeza-beza, termasuk tugas ramalan yang memerlukan tugas pemodelan dan pengelasan yang terperinci yang memerlukan pengekstrakan maklumat semantik peringkat tinggi. Bagaimana untuk membina model asas mendalam bersatu untuk menyelesaikan pelbagai tugas analisis masa dengan cekap masih belum diwujudkan. Untuk tujuan ini, pasukan dari Sekolah Perisian Universiti Tsinghua menjalankan penyelidikan mengenai isu asas pemodelan perubahan masa dan cadangan TimesNet, model asas pemasaan tugasan universal yang telah diterima oleh ICLR 2023. Senarai pengarang: Wu Haixu*, Hu Tengge*, Liu Yong*, Zhou Hang, Wang Jianmin, Long Mingsheng Pautan: https://ope

Semua yang anda perlu tahu tentang pilihan Tugas Akhir dalam bar tugas Windows 11 Semua yang anda perlu tahu tentang pilihan Tugas Akhir dalam bar tugas Windows 11 Aug 25, 2023 pm 12:29 PM

Program beku atau tidak bertindak balas mudah dibunuh daripada Pengurus Tugas. Tetapi Microsoft baru-baru ini telah menyediakan pengguna dengan kemudahan untuk menamatkan tugasan ini terus dari bar tugas. Walaupun pilihan itu tidak dilancarkan kepada semua orang, ia mudah didapati jika anda mempunyai binaan Windows Insider. Berikut ialah semua yang anda perlukan untuk mendayakan butang Tugas Akhir dan menutup tugas daripada bar tugas. Cara Mendapatkan Butang Tugas Akhir daripada Bar Tugas untuk Membunuh Apl Pada masa ini, pilihan untuk mendayakan butang Tugas Akhir untuk apl bar tugas hanya tersedia sebagai pilihan pembangun untuk pengguna dengan binaan Windows Insider. Walau bagaimanapun, ini mungkin berubah dalam kemas kini ciri yang akan datang kerana ia akan dilancarkan kepada pengguna secara global pada versi stabil. Jika anda masih

See all articles