2012-12-14 17 views
6

Finora ho cercato di padroneggiare il threading implementando immediatamente i thread nel mio progetto. E ho cercato di farlo per molto tempo. Ma questo non ha dato alcun risultato, né mi ha dato alcuna esperienza con il threading. L'unica cosa che il tentativo mi ha dato è l'impressione che il threading in C# abbia molti miglioramenti importanti.Threading C#: esercizi per principianti

Non sono riuscito a trovare semplici esercizi sulla filettatura. Sto cercando esercizi in cui devi fare diverse semplici applicazioni da console. Sto cercando degli esercizi semplici in modo da avere un'idea di come funzionano le cose quando si lavora con i thread e di padroneggiare quell'idea. Ho visto un libro di esercizi di programmazione con difficoltà che diventa più difficile man mano che il numero del problema aumenta. Sto cercando qualcosa di simile. Successivamente continuerò con cose più complicate e provo ad aggiungere thread nel mio progetto (che è fatto con Windows Forms).

Dove posso trovare esercizi/libro di esercizi sul threading in C#?

EDIT:

Non sto cercando per qualsiasi tutorials- posso trovare io stesso. Sto cercando solo esercizi ed esercizi. Se non ci sono tali esercizi, per favore, dimmelo.

+0

Scopri libro Visual C# 2012 lo fa carichi coprire circa il threading e compito fabbrica – cpoDesign

+0

una cosa esimo è difficile rendersi conto che il threading non migliora le prestazioni della maggior parte delle applicazioni. Assicurati di averne bisogno prima di usarlo. –

+0

Sono certo di averne bisogno. – AlexSavAlexandrov

risposta

7

Semplici esercizi:

1) codice di cambiamento che funziona (imparano con l'esempio)

  • aprire qualche tutorial
  • trovare codice esempi
  • giocare con merluzzo e campioni, vedere cosa funziona e cosa no

domande 2) risposta su SO (imparare attraverso l'insegnamento)

  • trovare una domanda interessante
  • risposta che (si dovrebbe fare una ricerca da fare questo)
  • parlare e interagire con altri utenti
+0

Buone idee. Grazie! – AlexSavAlexandrov

0

La filettatura è piuttosto semplice. Ecco un link popolare che lo riguardano: http://www.albahari.com/threading/

Basics:

Creare un metodo che restituisce void e non accetta argomenti. In questo modo:

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

Per chiamare tale metodo in una discussione, è sufficiente farlo in un pulsante di un modulo.

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

che creerà un filo e avviarlo fuori ed eseguire il codice nel MyThreadMethod.

Ora il diavolo è nei dettagli. La sicurezza del thread e la gestione dei thread è dove si trova la vera arte del threading e del multitasking. Un'altra cosa da considerare è Threads vs Tasks che sono molto più user-friendly.

+0

Ed è per questo che ho bisogno di esercizi: per padroneggiare la conoscenza, non posso implementarla immediatamente nel mio progetto. – AlexSavAlexandrov

+0

Visita il link nella parte superiore del mio post. Ha alcuni livelli di tutorial. Penso davvero che ti darà quello di cui hai bisogno. – jmrnet

+0

Ho bisogno di esercizi, non di esercitazioni, con cui posso trasformare le conoscenze in abilità. – AlexSavAlexandrov

4

Joseph Albahari ha un grande articolo chiamato Threading in C#. Questo è davvero un bel post sul blog che inizia a imparare per il threading in C#. Joseph spiegato chiaramente:

  • Introduzione e Concetti
  • Iscriviti e dormire
  • Come Threading Opere
  • Creazione e avvio di discussioni
  • Discussione Pooling

E verificare this fuori articolo dal CodeProject .

  • Guida introduttiva

È possibile creare e avviare un nuovo thread istanziando un oggetto Thread e chiamando il suo metodo di avvio.Il costruttore più semplice per Thread accetta un delegato ThreadStart: un metodo senza parametri che indica dove deve iniziare l'esecuzione.

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

Se volete saperne di threading profondamente ottenere una copia del C# 4.0 in a Nutshell

+0

Il tutorial sulle due barre di avanzamento è bello. Ma la tua risposta non risponde ancora alla mia domanda. – AlexSavAlexandrov