Diese Demo-Anwendung zeigt die Auswirkungen des ThreadStatic-Attributs.
Einfach ausgedrückt sorgt es dafür, dass eine statische Variable in jedem Thread einen eigenen Wert haben kann.
using System;
using System.Threading;
class Program
{
[ThreadStatic]
static int a = 0;
static int b = 0;
static void Main(string[] args)
{
for (int i = 0; i < 10; ++i)
{
var t = new Thread(() =>
{
for (int j = 0; j < 10; ++j)
{
++a;
++b;
}
Console.WriteLine("Thread #" + i + ": {0,3} - {1,3}", a, b);
});
t.Start();
t.Join();
}
Console.WriteLine("Mainthread: {0,3} - {1,3}", a, b);
Console.ReadKey();
}
}
Kommentare zum Snippet