2012-12-14 17 views
6

Do tej pory starałem się opanować wątki, natychmiast wdrażając wątki w moim projekcie. I próbowałem to zrobić przez długi czas. Ale to nie przyniosło żadnych rezultatów, ani nie dało mi żadnego doświadczenia z wątkami. Jedyną rzeczą, którą ta próba dała mi, było wrażenie, że wątek w C# ma wiele ważnych udoskonaleń.C# Gwintowanie: Ćwiczenia dla początkujących

Nie mogłem znaleźć żadnych prostych ćwiczeń na temat gwintowania. Szukam ćwiczeń, w których musisz tworzyć różne proste aplikacje konsolowe. Szukam prostych ćwiczeń, dzięki czemu mogę zorientować się, jak działają rzeczy podczas pracy z wątkami i opanować ten pomysł. Widziałem książkę z trudnymi ćwiczeniami programistycznymi, które stają się trudniejsze, gdy liczba problemu zwiększa się. Szukam czegoś podobnego. Potem będę kontynuował bardziej skomplikowane rzeczy i spróbuję dodać wątki do mojego projektu (który jest tworzony za pomocą Windows Forms).

Gdzie mogę znaleźć ćwiczenia/książkę ćwiczeń na temat gwintowania w języku C#?

EDIT:

ja nie szukam jakiejkolwiek tutorials- mogę znaleźć je sam. Szukam tylko ćwiczeń i ćwiczeń. Jeśli nie ma takich ćwiczeń, proszę, powiedz mi.

+0

odjazdu książka Visual C# 2012 to nie obejmuje obciążeń o gwintowania i zadań fabryce – cpoDesign

+0

jedna rzecz th trudno jest zrozumieć, że wątkowanie nie poprawia wydajności większości aplikacji. Upewnij się, że go potrzebujesz, zanim go użyjesz. –

+0

Jestem pewien, że tego potrzebuję. – AlexSavAlexandrov

Odpowiedz

7

prostych ćwiczeń:

1) Kod zmiana, która działa (uczenie się przez przykład)

  • otworzyć dowolny samouczek
  • znajdź próbki kodu
  • zabawy z dorszem Próbki E, zobaczyć, co działa a co nie

pytania 2) odpowiedź na SO (uczenie się przez nauczanie)

  • znaleźć ciekawe pytanie
  • odpowiedź to (należy zrobić badania, aby zrobić to)
  • rozmów i interakcji z innymi użytkownikami
+0

Dobre pomysły. Dziękuję Ci! – AlexSavAlexandrov

0

Gwintowanie jest całkiem proste. Oto popularne łącza dotyczące go: http://www.albahari.com/threading/

Podstawy:

utworzyć metodę, która zwraca void i nie bierze argumenty. W ten sposób:

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

Aby wywołać tę metodę w wątku, po prostu zrób to w przycisku na formularzu.

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

To będzie utworzyć wątku i uruchomić go i uruchomić kod w MyThreadMethod.

Teraz diabeł tkwi w szczegółach. Bezpieczeństwo wątków i zarządzanie wątkami jest prawdziwą sztuką wątków i wielozadaniowości. Kolejną rzeczą do rozważenia jest Threads vs Tasks, które są znacznie bardziej przyjazne dla użytkownika.

+0

I dlatego potrzebuję ćwiczeń: aby opanować wiedzę, nie mogę jej natychmiast wdrożyć w moim projekcie. – AlexSavAlexandrov

+0

Odwiedź link u góry mojego posta. Ma kilka poziomów samouczków. Naprawdę myślę, że da ci to, czego potrzebujesz. – jmrnet

+0

Potrzebuję ćwiczeń, a nie tutoriali, dzięki którym mogę przekształcić wiedzę w umiejętność. – AlexSavAlexandrov

4

Joseph Albahari ma świetny artykuł o nazwie Threading in C#. To jest naprawdę fajny wpis na blogu na temat rozpoczęcia nauki wątków w języku C#. Joseph jasno wyjaśnił:

  • Wprowadzenie i Concepts
  • Dołącz and Sleep
  • Jak gwintów Works
  • Tworzenie i uruchamianie wątki
  • Temat Łączenie

i sprawdź this się artykuł z codeproject .

  • Rozpoczęcie

Można tworzyć i rozpocząć nowy wątek przy uruchamianiu tego Thread obiektu i wywołanie jego metodę Start.Najprostszy konstruktor wątku przyjmuje delegata ThreadStart: metodę bez parametrów, wskazującą miejsce rozpoczęcia wykonywania.

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 
... 

Jeśli chcesz dowiedzieć się gwintowania głęboko otrzymać kopię C# 4.0 in a Nutshell

+0

Samouczek dotyczący dwóch pasków postępu jest ładny. Ale twoja odpowiedź nadal nie odpowiada na moje pytanie. – AlexSavAlexandrov