Visual C# kullanarak iş parçacığı havuzu için bir iş öğesi gönderme nasıl

Makale çevirileri Makale çevirileri
Makale numarası: 315460 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu adım adım makalede, bir yürütme iş parçacığı havuzu yöntemine gönderme gösterilmiştir.

.NET ortamında, her işlem, yöntem zaman uyumsuz olarak çalıştırmak için kullanabileceğiniz bir iş parçacığı havuzu vardır.

Gereksinimler


Aşağıdaki listede, gereksinim duyulan donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
  • Microsoft Visual Studio .NET veya Microsoft Visual Studio 2005
Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • Visual C programlama dili #

Iş parçacığı havuzu kullanan bir Visual C# uygulaması oluşturma

  1. Microsoft Visual Studio 2005 ya da Microsoft Visual Studio. NET'i başlatın.
  2. PoolDemo adlı yeni bir Visual C# Windows uygulaması projesi oluşturun.
  3. Araç, bir Düğme) denetimi, forma eklemek için kullanın. Varsayılan Düğme denetimi button1 adıdır.
  4. Formu sağ tıklatın ve Kod Görüntüle</a1>'ı tıklatın.
  5. Sonra varolan yönergeleri kullanarak, ancak önce bildirim PoolDemo ad kullanarak şu yönergeyi yapıştırın:
    using System.Threading;
    					
  6. Tasarım görünümüne geçin ve sonra da button1 çift tıklatın. Button1_Click</a2> olay işleyicisinde aşağıdaki kodu yapıştırın:
    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. Form1 sınıfı gövdesine aşağıdaki kodu yapıştırın. GetSysDirSize yöntemi sistem dizininde depolanan bayt sayısını hesaplar. GetSysDirSize hesaplama gerçekleştirmek için DirSize adlı başka bir yöntemi çağırır.

    Not: Bu görevi çalıştırmak için biraz zaman alabilir.
    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;
    }
    					

Örnek sınayın.

  1. Uygulamayı çalıştırmak için CTRL + F5 tuşuna basın.
  2. Formu dijital olarak göründüğünde, bu düğmeyi tıklatın. Çalışma öğesi yerleştirilmiş sıraya ileti kutusu göründüğünde, ileti kutusunu kapatmak ve ana forma dönmek için Tamam ' ı tıklatın. Kısa bir gecikmeden sonra <a0>Sistem</a0> dizinindeki toplam dosya boyutunu formunun yazısında görüntülenir. Bilgisayarınızın sistem dizindeki dosyaların sayısı ve hızını gecikme uzunluğunu bağlıdır. Dosya boyutları hesaplamasının bir iş parçacığı üzerinde iş parçacığı havuzu gerçekleşir.

Özellikler

Makale numarası: 315460 - Last Review: 11 Aralık 2006 Pazartesi - Gözden geçirme: 2.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster kbsample kbthread KB315460 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:315460

Geri Bildirim Ver

 

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