您提供的链接几乎可以直接转换为C#.busy-wait(或spinlock)是在实现的void *f1(void *p).这可以转换为C#,因此:
static void f1()
{
while (i == 0)
{
}
Console.WriteLine("i's value has changed to {0}.", i);
return;
}
Run Code Online (Sandbox Code Playgroud)
我建议不要使用手工制作的自旋锁,除非你完全确定你在做什么.如果需要对变量进行独占访问,请使用lock关键字标记使用该变量的代码的关键部分.
Joe Albahari发布了一篇优秀且免费的线程介绍.我强烈建议您阅读本文以更好地理解线程和线程同步.