Cara mengirim item pekerjaan untuk benang kolam renang dengan menggunakan Visual C#

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 315460 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan kepada Anda bagaimana untuk mengirimkan sebuah metode untuk renang benang untuk eksekusi.

Dalam.Lingkungan bersih, setiap proses memiliki kolam benang yang dapat Anda gunakan untuk menjalankan metode asynchronously.

Persyaratan


Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang diperlukan:
  • Microsoft Visual Studio.NET atau Microsoft Visual Studio 2005
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan topik-topik berikut:
  • Visual C# bahasa pemrograman

Menciptakan sebuah Visual C# aplikasi yang menggunakan kolam renang Thread

  1. Mulai Microsoft Visual Studio.NET atau Microsoft Visual Studio 2005.
  2. Membuat proyek Visual C# Windows aplikasi baru yang bernama PoolDemo.
  3. Menggunakan Toolbox untuk menambahkan Tombol mengendalikan ke bentuk. Nama standar untuk Tombol kontrol adalah button1.
  4. Klik kanan bentuk, dan kemudian klik Lihat kode.
  5. Sisipkan berikut menggunakan direktif setelah yang ada menggunakan arahan, tapi sebelum Deklarasi PoolDemo namespace:
    using System.Threading;
    					
  6. Beralih kembali ke tampilan desain, dan kemudian klik dua kali button1. Paste kode berikut di button1_Click event handler:
    private void button1_Click(object sender, System.EventArgs e)
    {
    	WaitCallback wcb = new WaitCallback(GetSysDirSize);
    	try
    	{
    		ThreadPool.QueueUserWorkItem(wcb);
    		MessageBox.Show("The work item has been placed on the queue");
    	}
    	catch (Exception ex)
    	{
    		MessageBox.Show("Error: " + ex.Message);
    	}
    }
    					
  7. Paste kode berikut dalam tubuh Form1 kelas. The GetSysDirSize metode menghitung jumlah byte yang disimpan dalam sistem direktori. GetSysDirSize panggilan metode lain bernama DirSize untuk melakukan perhitungan.

    CATATAN: Tugas ini mungkin mengambil beberapa waktu untuk menjalankan.
    private void GetSysDirSize(object state)
    {
    	long total_length = DirSize(Environment.SystemDirectory);
    	this.Text = total_length.ToString();
    }
    
    private long DirSize(string path)
    {
    	long sz = 0;
    	System.IO.DirectoryInfo d = new System.IO.DirectoryInfo(path);
    	
    	// List files.
    	foreach(System.IO.FileInfo f in d.GetFiles())
    	{
    		sz += f.Length;
    	}
    
    	// Recurse into directories.
    	foreach(System.IO.DirectoryInfo dx in d.GetDirectories())
    	{
    		sz += DirSize(dx.FullName);
    	}
    
    	return sz;
    }
    					

Menguji sampel

  1. Tekan CTRL + F5 untuk menjalankan aplikasi.
  2. Ketika bentuk muncul, klik tombol. Ketika Item pekerjaan telah ditempatkan di antrian kotak pesan muncul, klik Oke untuk mengabaikan kotak pesan dan kembali ke bentuk utama. Setelah penundaan pendek, ukuran total file dalam direktori sistem ditampilkan dalam keterangan dari bentuk. Panjang keterlambatan tergantung pada kecepatan komputer Anda dan jumlah file dalam direktori sistem. Perhitungan ukuran file mengambil tempat pada sebuah thread di kolam benang.

Properti

ID Artikel: 315460 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Kata kunci: 
kbhowtomaster kbsample kbthread kbmt KB315460 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:315460

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com