Les données doivent être partagées entre les threads. Quelle est la meilleure méthode de synchronisation?Synchronisation des threads
Est-ce que le verrou est la meilleure approche ou Mutex?
namespace ConsoleApplication8
{
class Data
{
public int X
{
set;
get;
}
public int Y
{
get;
set;
}
public int result;
}
class Program
{
static int a;
private static object aLock = new object();
static void Main(string[] args)
{
ParameterizedThreadStart aStart = new ParameterizedThreadStart(Addition);
Thread aThread = new Thread(aStart);
Data aData = new Data();
aData.X = 10;
aData.Y = 20;
Thread aThread2 = new Thread(aStart);
aThread2.Start();
aThread.Start(aData);
aThread.Join();
aThread2.Join();
Console.WriteLine("End of the program");
}
static void Addition(object data)
{
var a = data as Data;
var b = a.X + a.Y;
a.result = b;
Console.WriteLine(a.result);
Thread.Sleep(1000);
Console.WriteLine("End of thread");
updateValue();
}
static void updateValue()
{
lock (aLock)
{
a++;
}
}
}
}
Définir les critères "meilleurs". Est-ce que la pomme est meilleure que l'orange? – zerkms
Ou voulez-vous juste connaître la différence de serrure et de mutex? – erikH
regarder même ces postes: http://stackoverflow.com/questions/1164038/monitor-vs-mutex-in-c http://stackoverflow.com/questions/1763251/lock-monitor-mutex – Rev