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
- Mulai Microsoft Visual Studio.NET atau Microsoft Visual Studio 2005.
- Membuat proyek Visual C# Windows aplikasi baru yang bernama PoolDemo.
- Menggunakan Toolbox untuk menambahkan Tombol mengendalikan ke bentuk. Nama standar untuk Tombol kontrol adalah button1.
- Klik kanan bentuk, dan kemudian klik Lihat kode.
- Sisipkan berikut menggunakan direktif setelah yang ada menggunakan arahan, tapi sebelum Deklarasi PoolDemo namespace:
- 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);
}
}
- 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
- Tekan CTRL + F5 untuk menjalankan aplikasi.
- 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.
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
| kbhowtomaster kbsample kbthread kbmt KB315460 KbMtid |
Penerjemahan MesinPENTING: 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
(http://support.microsoft.com/kb/315460/en-us/
)