illustrates the use of thread-local storage : Thread Creation : Thread C# Source Code


Custom Search

C# Source Code » Thread » Thread Creation »

 

illustrates the use of thread-local storage









    

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/

/*
  Example14_4.cs illustrates the use of thread-local storage
*/

using System;
using System.Threading;

public class Example14_4 
{

  // the WriteError method writes error info from the current thread
  public static void WriteError()
  {
    Console.WriteLine("Error number = " + Thread.GetData(Thread.GetNamedDataSlot("ErrNo")));
    Console.WriteLine("Error source = " + Thread.GetData(Thread.GetNamedDataSlot("ErrSource")));
  }

  // the SetError method sets a random error number
  public static void SetError() 
  {
    Random r = new Random();
    Thread.SetData(Thread.GetNamedDataSlot("ErrNo"), r.Next(100));
    Thread.SetData(Thread.GetNamedDataSlot("ErrSource") ,Thread.CurrentThread.Name);
    WriteError();
  }

  public static void Main() 
  {
    // allocate some named data slots
    Thread.AllocateNamedDataSlot("ErrNo");
    Thread.AllocateNamedDataSlot("ErrSource");

    // create and start a second thread
    Thread t2 = new Thread(new ThreadStart(SetError));
    t2.Name = "t2";
    t2.Start();

    // create a third thread
    Thread t3 = new Thread(new ThreadStart(SetError));
    t3.Name = "t3";
    t3.Start();

    // clean up the data slots
    Thread.FreeNamedDataSlot("ErrNo");
    Thread.FreeNamedDataSlot("ErrSource");

  }

}


           
       
    
   
  
   







HTML code for linking to this page:

Follow Navioo On Twitter

C# Source Code

 Navioo Thread
» Thread Creation