Thread e C#
Tags:
Fino a poco tempo fa ogni qual volta avevo a che fare con i thread lo facevo con poca cognizione di causa… ogni tanto mi era capitato di fare applicazioni che dovevano popolare una lista o aspettare un input, senza che il programma si bloccasse, ma non avevo mai approfondito il tema più di tanto.

Un esempio del classico uso base dei Thread in C# è il seguente:
using System;
using System.Threading;
public class ClasseStupida
{
public ClasseStupida() {}
public void FaccioTanteCose()
{
for (int i = 0; i < 30; i++)
{
lock(this)
{
Console.WriteLine("");
Thread.Sleep(10);
Console.WriteLine(Thread.CurrentThread.Name + ":");
Thread.Sleep(10);
Console.WriteLine("Faccio la cosa " + i.ToString());
}
Thread.Sleep(500);
}
Console.WriteLine(Thread.CurrentThread.Name
+ ":ho finito di fare tutte le cose! che bello!!");
}
public static void Main()
{
ClasseStupida classeStupida = new ClasseStupida();
Thread threadStupido = new Thread(classeStupida.FaccioTanteCose);
threadStupido.Name="ThreadStupido1";
threadStupido.Start();
Thread.Sleep(1000);
Thread threadStupido1 = new Thread(classeStupida.FaccioTanteCose);
threadStupido1.Name="ThreadStupido2";
threadStupido1.Start();
Thread.Sleep(1000);
Thread threadStupido2 = new Thread(classeStupida.FaccioTanteCose);
threadStupido2.Name="ThreadStupido3";
threadStupido2.Start();
threadStupido2.Join();
Console.WriteLine("fuuuiiuuhhh! FINITO!");
}
}
Conoscevo vagamente per sentito dire i mutex e le varie implicazioni sulla sincronizzazione dei thread… ma di certo non avevo idea di quanto grande e complessa fosse la programmazione di un’applicazione multithreading.
Ma a tutto c’è un rimedio! Soprattutto all’ignoranza: ed in questo caso il rimedio è stato un utilissimo blog di Joseph Albahari che oltre ad avere dedicato diversi post sui vari aspetti del multithreading e della sincronizzazione dei thread in c#, ha realizzato anche un utilissimo e-book! Se vi state imbattendo per la prima volta in questo campo, e volete conoscere tutti gli strumenti che c# mette a disposizione allora questo sito fa per voi!
Buon divertimento!
http://www.albahari.com/threading/
Se sei interessato a questo post, potresti anche provare a leggere:
-
No related posts
08 Giu 2007 inandrea
Presto pubblicherò degli articoli su delle classi per realizzare Thread e Mutex in c++.
and, ma qst scheda è una…mmmhDLON??!! =)