Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6122293
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T15:52:55+00:00 2026-05-23T15:52:55+00:00

Here is some code that perpetually generate GUIDs. I’ve written it to learn about

  • 0

Here is some code that perpetually generate GUIDs. I’ve written it to learn about threading. In it you’ll notice that I’ve got a lock around where I generate GUIDs and enqueue them even though the ConcurrentQueue is thread safe. It’s because my actual code will need to use NHibernate and so I must make sure that only one thread gets to fill the queue.

While I monitor this code in Task Manager, I notice the process drops the number of threads from 18 (on my machine) to 14 but no less. Is this because my code isn’t good?

Also can someone refactor this if they see fit? I love shorter code.

class Program
{
    ConcurrentNewsBreaker Breaker;

    static void Main(string[] args)
    {
        new Program().Execute();

        Console.Read();
    }

    public void Execute()
    {
        Breaker = new ConcurrentNewsBreaker();
        QueueSome();
    }

    public void QueueSome()
    {
        ThreadPool.QueueUserWorkItem(DoExecute);
    }

    public void DoExecute(Object State)
    {
        String Id = Breaker.Pop();
        Console.WriteLine(String.Format("- {0} {1}", Thread.CurrentThread.ManagedThreadId, Breaker.Pop()));

        if (Breaker.Any())
            QueueSome();
        else
            Console.WriteLine(String.Format("- {0} XXXX ", Thread.CurrentThread.ManagedThreadId));            
    }
}


public class ConcurrentNewsBreaker
{
    static readonly Object LockObject = new Object();

    ConcurrentQueue<String> Store = new ConcurrentQueue<String>();

    public String Pop()
    {
        String Result = null;
        if (Any())
            Store.TryDequeue(out Result);
        return Result;
    }

    public Boolean Any()
    {
        if (!Store.Any())
        {
            Task FillTask = new Task(FillupTheQueue, Store);
            FillTask.Start();
            FillTask.Wait();
        }

        return Store.Any();
    }

    private void FillupTheQueue(Object StoreObject)
    {
        ConcurrentQueue<String> Store = StoreObject as ConcurrentQueue<String>;
        lock(LockObject)
        {
            for(Int32 i = 0; i < 100; i++)
                Store.Enqueue(Guid.NewGuid().ToString());            
        }
    }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T15:52:55+00:00Added an answer on May 23, 2026 at 3:52 pm

    You are using .NET’s ThreadPool so .NET/Windows manages the number of threads based on the amount of work waiting to be processed.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've got some code here that works great on IPv4 machines, but on our
I have some code that is using SyncEnumerator. As you can see here ,
So I have some PHP code that looks like: $message = 'Here is the
Given some JS code like that one here: for (var i = 0; i
Here's the situation: We have some generic graphics code that we use for one
Here's some example code: class Obj attr :c, true def == that p '=='
We have some old C code here that's built with nmake. Is there an
I have a piece of code here that i really could use some help
I got some sample code from the net here: http://www.javadb.com/sending-a-post-request-with-parameters-from-a-java-class That works fine. It
Here is some code that checks if a radio button is disabled. How do

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.