2012-12-14 29 views
6

Şimdiye kadar projemdeki konuları hemen uygulayarak iş parçacığı yapmaya çalışıyorum. Ve bunu uzun zamandır yapmaya çalışıyorum. Ama bu sonuç vermedi, ne de bana iş parçacığıyla ilgili herhangi bir deneyim vermedi. Bana teşebbüsün verdiği tek şey, C# 'da iş parçacığının bir çok önemli düzeltmeye sahip olduğu izlenimidir.C# Threading: Yeni başlayanlar için alıştırmalar

Diş açma hakkında herhangi bir basit egzersiz bulamadım. Farklı basit konsol uygulamaları yapmak zorunda olduğunuz egzersizleri arıyorum. Basit egzersizler arıyorum, böylece iş parçacığı ile çalışırken işlerin nasıl yürüdüğüne dair bir fikir edinebilir ve bu fikri ustalaştırabilirim. Problemin sayıları arttıkça zorlaşan bir programlama alıştırmaları kitabı gördüm. Benzer bir şey arıyorum. Daha sonra daha karmaşık şeylerle devam edeceğim ve projemde (Windows Forms ile yapılan) konuları eklemeye çalışacağım.

C# 'da iş parçacığı hakkında egzersizler/alıştırmalar kitabı nerede bulabilirim?

DÜZENLEME: Ben herhangi bir tutorials- aramıyorum

onları kendim bulabilirsiniz. Sadece egzersizler ve alıştırmalar arıyorum. Böyle bir alıştırma yoksa lütfen söyle.

+0

Kontrol dışarı kitap Visual C# 2012 ile etkileşim o parçacığı ve görev fabrikasında – cpoDesign

+0

bir şey inci ilgili kapak yükleri yapar Bunu anlamak zor olsa da, iş parçacığının çoğu uygulamanın performansını iyileştirmediği ortaya çıkıyor. Kullanmadan önce ihtiyacınız olduğuna emin olun. –

+0

İhtiyacım olduğuna eminim. – AlexSavAlexandrov

cevap

7

Basit egzersizler bir kopyasını almak derinden diş öğrenmek istiyorsanız:

1) değişim kodunu (

  • herhangi öğretici açın) örnekle öğrenmek çalışır
  • kod örneklerini bul
  • Cod ile oyna E numuneleri, ne çalışıyor ve ne görmek does not
(

  • ilginç bir soru bulmak) öğretim öğrenmek SO üzerinde

    2) cevap sorular

  • cevabım (Yapmanız bir araştırma yapmak gerekir Bu)
  • konuşma ve diğer kullanıcılar
+0

İyi fikirler. Teşekkür ederim! – AlexSavAlexandrov

0

Threading oldukça düz ileri doğru. http://www.albahari.com/threading/

Temelleri:

geçersiz döndürür argümansızdır ve bir yöntem oluşturun İşte ilişkin popüler bir bağlantıdır. Bunun gibi:

private void MyThreadMethod() 
{ 
    //Some code here. 
} 

Bir iş parçacığında bu yöntemi çağırmak için bunu bir formdaki bir düğmede yapın. Bir iş parçacığı oluşturmak ve bunu başlamak ve MyThreadMethod kod çalışacaktır

var thread = new Thread(new ThreadStart(MyThreadMethod)); 
thread.Start(); 

.

Şimdi, şeytan ayrıntılarda. İş parçacığı güvenliği ve iş parçacığı yönetimi, gerçek iş parçacığı ve çoklu görev sanatının olduğu yerdir. Göz önünde bulundurulması gereken diğer bir konu, daha kullanıcı dostu olan Konular ve Görevler'dir.

+0

İşte bu yüzden alıştırmalara ihtiyacım var: Bilgiye hakim olmak için hemen projemde uygulayamam. – AlexSavAlexandrov

+0

Gönderiimin en üstünde bulunan bağlantıyı ziyaret edin. Birkaç düzeyde öğreticiye sahiptir. Gerçekten sana ihtiyacın olanı vereceğini düşünüyorum. – jmrnet

+0

Bilgiyi beceriye dönüştürebileceğim öğreticilere değil, alıştırmalara ihtiyacım var. – AlexSavAlexandrov

4

Joseph Albahari, Threading in C# adlı harika bir makaleye sahiptir. Bu C# içinde threading öğrenmek için başlamak hakkında harika bir blog yazısı. Joseph açıkça açıkladı:

  • Giriş ve Kavramlar
  • konu oluşturma ve başlatma
  • Nasıl Threading İşleri
  • katıl ve Uyku

Ve havuzu oluşturma Konu codeproject dan this dışarı makalesini kontrol .

  • bir Thread nesnesinin örneğini ve onun Başlat yöntemini çağırarak

oluşturabilir ve yeni bir iplik başlayabilir Başlarken.İş parçacığı için en basit kurucu, yürütme işleminin nerede başlayacağını belirten bir parametresiz yöntem olan ThreadStart temsilci alır: .

using System; 
using System.Threading; 

class ThreadTest 
{ 
    static void Main() 
    { 
     Thread t = new Thread (WriteY); // Kick off a new thread 
     t.Start(); // running WriteY() 
     // Simultaneously, do something on the main thread. 
     for (int i = 0; i < 1000; i++) Console.Write ("x"); 
    } 
    static void WriteY() 
    { 
     for (int i = 0; i < 1000; i++) Console.Write ("y"); 
     } 
} 

// Output: 
xxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyy 
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxx 
xxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 
yyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
... 

Eğer C# 4.0 in a Nutshell

+0

İki ilerleme çubuğuyla ilgili eğitim güzel. Ama cevabınız hala sorumu cevaplamıyor. – AlexSavAlexandrov

İlgili konular