c# – 如何确保只有一个线程会做某事?

前端之家收集整理的这篇文章主要介绍了c# – 如何确保只有一个线程会做某事?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有多个线程将项目添加到无锁队列.
然后这些项目被另一个线程处理.

在制作人员线程中,我需要启动消费者线程,但只有当它没有运行或启动时才会启动.

特别:

public void BeginInvoke(Action method)
{
    //This runs on multiple background threads
    pendingActions.Enqueue(method);
    if (ProcessQueue hasn't been posted)
        uiContext.Post(ProcessQueue,null);
}
private void ProcessQueue(object unused)
{
    //This runs on the UI thread.
    Action current;
    while (pendingActions.TryDequeue(out current))
        current();
}

我正在使用.Net 3.5,而不是4.0.

猜你在找的C#相关文章