İş parçacığı oluşturmak için Visual C# kullanma

Microsoft Visual C# .NET'te veya Visual C# uygulamasında çok iş parçacıklı uygulamalar yazabilirsiniz. Bu makalede basit bir Visual C# uygulamasının iş parçacıkları oluşturma ve yönetme işlemleri açıklanmaktadır.

Orijinal ürün sürümü: Visual C#
Özgün KB numarası: 815804

Gereksinimler

Aşağıdaki listede ihtiyacınız olan önerilen donanım, yazılım, ağ altyapısı ve hizmet paketleri özetlenmiştir:

  • Windows veya Windows Server
  • Visual C# .NET veya Visual C#

Bu makalede, aşağıdaki konular hakkında bilgi sahibi olduğunuz varsayılır:

  • Visual C# programlama
  • Visual Studio .NET Tümleşik Geliştirme Ortamı (IDE) veya Visual Studio IDE

Bu makale, .NET Framework Sınıf Kitaplığı ad alanını System.Threadingifade eder.

İş parçacıklarıyla Visual C# uygulaması oluşturma

  1. Visual Studio .NET, Visual Studio veya Visual C# Express Edition'ı başlatın.

  2. ThreadWinApp adlı yeni bir Visual C# Windows Uygulaması projesi oluşturun.

  3. Forma Bir Düğme denetimi ekleyin. Varsayılan olarak düğmeNin adı Button1'dir.

  4. Forma bir ProgressBar bileşeni ekleyin. Varsayılan olarak, ilerleme çubuğu ProgressBar1 olarak adlandırılır.

  5. Forma sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

  6. Dosyanın başına aşağıdaki deyimi ekleyin:

    using System.Threading;
    
  7. Button1 için aşağıdaki button1_Click olay işleyicisini ekleyin:

    private void button1_Click(object sender, System.EventArgs e)
    {
        MessageBox.Show("This is the main thread");
    }
    
  8. Sınıfına aşağıdaki değişkeni Form1 ekleyin:

    private Thread trd;
    
  9. Sınıfına Form1 aşağıdaki yöntemi ekleyin:

    private void ThreadTask ()
    {
        int stp;
        int newval;
        Random rnd = new Random ();
    
        while (true)
        {
            stp = this.progressBar1.Step * rnd.Next (-1, 2);
            newval = this.progressBar1.Value + stp;
            if (newval > this.progressBar1.Maximum)
                newval = this.progressBar1.Maximum;
            else if (newval < this.progressBar1.Minimum)
                newval = this.progressBar1.Minimum;
            this.progressBar1.Value = newval;
            Thread.Sleep (100);
        }
    }
    

    Not

    Bu, iş parçacığının altındaki koddur. Bu kod, ProgressBar1'deki değeri rastgele artıran veya azalan bir sonsuz döngüdür ve devam etmeden önce 100 milisaniye bekler.

  10. Form1 için aşağıdaki Form1_Load olay işleyicisini ekleyin. Bu kod yeni bir iş parçacığı oluşturur, iş parçacığını arka plan iş parçacığı yapar ve ardından iş parçacığını başlatır.

    private void Form1_Load(object sender, System.EventArgs e)
    {
        Thread trd = new Thread(new ThreadStart(this.ThreadTask));
        trd.IsBackground = true;
        trd.Start();
    }
    

Çalıştığını doğrulayın

  1. Uygulamayı derleyin ve çalıştırın. ProgressBar1 içindeki değerin rastgele değiştiğine dikkat edin. Bu, işlemdeki yeni iş parçacığıdır.

  2. Ana iş parçacığının ProgressBar1 değerini değiştiren iş parçacığından bağımsız olduğunu göstermek için formdaki düğmeye tıklayın. Aşağıdaki hata iletisini içeren bir iletişim kutusu alırsınız:

    Bu ana iş parçacığıdır

Girişi bekleyin. ProgressBar1continu içindeki değerin değiştirildiğini fark edin.

Sorun giderme

Daha karmaşık uygulamalarda, paylaşılan değişkenlere erişirken birden çok iş parçacığını eşitlediğinizden emin olun. Daha fazla bilgi için Visual C# .NET çevrimiçi yardım belgelerindeki kilit deyimine ve ilgili konulara bakın.

Başvurular

Daha fazla bilgi için bkz . İş Parçacığı Sınıfı.