Na stronie http://msdn.microsoft.com/en-us/devlabs/ee334183.aspx można znaleźć bardzo ciekawy projekt implementujący transakcyjną pamięć w .NET. Dzięki temu można napisać na przykład (fragment jednego z przykładów towarzyszących STM.NET):

[...]
Atomic.Do(() =>
 {
   // Can we grab both forks? If not, retry
   if (bforks[left] || bforks[right])
   {
     Atomic.Retry();
   }
   bforks[left] = true;
   bforks[right] = true;
});

[...]

Warto dokładniej obejrzeć przykład rozwiązania problemu pięciu filozofów. Pokazana jest implementacja wykorzystująca "klasyczne" wątki oraz nową składnię wykorzystującą słowo kluczowe atomic.

Warto też zajrzeć na blog zespołu budującego ten projekt: http://blogs.msdn.com/stmteam/.

Aby zainstalować SDK, należy ściąnąć:

Uwaga! STM.NET dostępne jest tylko w wersji 32 bitowej.