Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
Özgün ü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 konulara aşina 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ına System.Threadingbaşvurur.
İş parçacıklarıyla Visual C# uygulaması oluşturma
Visual Studio .NET, Visual Studio veya Visual C# Express Edition'ı başlatın.
ThreadWinApp adlı yeni bir Visual C# Windows Uygulaması projesi oluşturun.
Forma düğme denetimi ekleyin. Varsayılan olarak düğmeNin adı Düğme1'dir.
Forma progressbar bileşeni ekleyin. Varsayılan olarak, ilerleme çubuğu ProgressBar1 olarak adlandırılır.
Forma sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.
Dosyanın başına aşağıdaki deyimi ekleyin:
using System.Threading;Button1 için aşağıdaki
button1_Clickolay işleyicisini ekleyin:private void button1_Click(object sender, System.EventArgs e) { MessageBox.Show("This is the main thread"); }Sınıfına
Form1aşağıdaki değişkeni ekleyin:private Thread trd;Form1sınıfına 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ında yer alan koddur. Bu kod, ProgressBar1 içindeki değeri rastgele artıran veya azalan sonsuz bir döngüdür ve devam etmeden önce 100 milisaniye bekler.
Form1 için aşağıdaki
Form1_Loadolay işleyicisini ekleyin. Bu kod yeni bir iş parçacığı oluşturur, iş parçacığını arka plan iş parçacığı yapar ve sonra 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
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.
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. ProgressBar1 içindeki değerin değiştirildiğini unutmayın.
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ı.