The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Thread.Name Property

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Gets or sets the name of the thread.

Namespace:  System.Threading
Assembly:  mscorlib (in mscorlib.dll)

public string Name { get; set; }

Property Value

Type: System.String
A string that contains the name of the thread, or null if no name was set.


A set operation was requested, and the Name property has already been set.

This property is write-once.

The following example assigns names to the reader thread and writer thread when they are created, and then retrieves and displays those names in the output from the thread procedures.

For a full description of what this example does, see AutoResetEvent.

using System;
using System.Threading;
using System.Text;

class Example
    private const int numIterations = 10;

    // Create an AutoResetEvent that is initially not signaled.
    private static AutoResetEvent myResetEvent = new AutoResetEvent(false);

    private static int number;
    private static bool running = true;
    private static StringBuilder output = new StringBuilder();
    private static System.Windows.Controls.TextBlock outputBlock;

    public static void Demo(System.Windows.Controls.TextBlock outputBlock)
        Example.outputBlock = outputBlock;

        // Create and start the reader thread.
        Thread myReaderThread = new Thread(MyReadThreadProc);
        myReaderThread.Name = "ReaderThread";

        // Create and start the writer thread.
        Thread myWriterThread = new Thread(MyWriteThreadProc);
        myWriterThread.Name = "WriterThread";

    public static void MyReadThreadProc()
        while (running)
            // The value will not be read until the writer has written
            // at least once since the last read.

            lock (output)
                output.AppendLine(String.Format("{0} reading value: {1}", 
                    Thread.CurrentThread.Name, number));

    public static void MyWriteThreadProc()
        for(int i = 1; i <= numIterations; i++)
            lock (output)
                output.AppendLine(String.Format("{0} writing value: {1}", 
                    Thread.CurrentThread.Name, i));

            number = i;

            // Signal that a value has been written.

            // Give the Reader thread an opportunity to act.

        // Terminate the reader thread.
        running = false;

        lock (output)
            // Append the output from the example to the TextBlock control.
            // In order to update the TextBlock object, which is on the UI thread,
            // you must make a cross-thread call by using the Dispatcher object 
            // that is associated with the TextBlock.
            outputBlock.Dispatcher.BeginInvoke(delegate () {
                outputBlock.Text += output.ToString(); });

/* This code example produces output similar to the following:

WriterThread writing value: 1
ReaderThread reading value: 1
WriterThread writing value: 2
ReaderThread reading value: 2
WriterThread writing value: 3
ReaderThread reading value: 3
WriterThread writing value: 4
ReaderThread reading value: 4
WriterThread writing value: 5
ReaderThread reading value: 5
WriterThread writing value: 6
ReaderThread reading value: 6
WriterThread writing value: 7
ReaderThread reading value: 7
WriterThread writing value: 8
ReaderThread reading value: 8
WriterThread writing value: 9
ReaderThread reading value: 9
WriterThread writing value: 10
ReaderThread reading value: 10

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone