C#中忙碌等待的一个简单例子

S.M*_*ian -2 c#

我正在学习C#语言而且我是初学者.

我想通过使用C#语言中的线程来实现繁忙的等待.

我之前已阅读过链接,但有一个C语言示例代码:

http://en.wikipedia.org/wiki/Busy_waiting

pix*_*ger 5

您提供的链接几乎可以直接转换为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发布了一篇优秀且免费的线程介绍.我强烈建议您阅读本文以更好地理解线程和线程同步.