FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
C++
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
November 01, 2005

C++/CLI Threading: Part II

(Page 7 of 8)

November, 2005: C++/CLI Threading: Part II

Listing 3

using namespace System;
using namespace System::Threading;

public ref class ThreadX
{
/*1*/   int m1;
/*2*/   static int m2 = 20;
/*3*/   [ThreadStatic] static int m3 = 30;

public:
    ThreadX()
    {
        m1 = 10;
    }
    
    void TMain()
    {
        String^ threadName = Thread::CurrentThread->Name;
        
/*4*/       Monitor::Enter(ThreadX::typeid);
        for (int i = 1; i <= 5; ++i)
        {
            ++m1;
            ++m2;
            ++m3;
        }
        Console::WriteLine("Thread {0}: m1 = {1}, m2 = {2}, m3 = {3}",
            threadName, m1, m2, m3);
        Monitor::Exit(ThreadX::typeid);
    }
};

int main()
{
/*5*/   Thread::CurrentThread->Name = "t0";

    ThreadX^ o1 = gcnew ThreadX;
    Thread^ t1 = gcnew Thread(gcnew ThreadStart(o1, &ThreadX::TMain));
    t1->Name = "t1";

    ThreadX^ o2 = gcnew ThreadX;
    Thread^ t2 = gcnew Thread(gcnew ThreadStart(o2, &ThreadX::TMain));
    t2->Name = "t2";

    t1->Start();
/*6*/   (gcnew ThreadX)->TMain();
    t2->Start();
    t1->Join();
    t2->Join();
}

Previous Page | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 Next Page
TOP 5 ARTICLES
No Top Articles.



MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK