Материал из .Net Framework эксперт
Starting Threads
#include "stdafx.h"
using namespace System;
using namespace System::Threading;
ref class MyThread
{
public:
static void StaticThread();
void NonStaticThread(Object ^name);
};
void MyThread::StaticThread()
{
for (int i = 0; i < 500; i++)
{
if (i % 10 == 0)
Console::WriteLine("Static Thread {0}", i.ToString());
}
}
void MyThread::NonStaticThread(Object ^name)
{
for (int i = 0; i < 500; i++)
{
if (i % 10== 0)
Console::WriteLine("Member {0} Thread {1}",
name,
i.ToString());
}
}
void main()
{
ThreadStart ^thrStart = gcnew ThreadStart(&MyThread::StaticThread);
Thread ^thr1 = gcnew Thread(thrStart);
MyThread ^myThr = gcnew MyThread();
Thread ^thr2 = gcnew Thread(gcnew ParameterizedThreadStart(myThr, &MyThread::NonStaticThread));
thr1->IsBackground = true;
thr1->Start();
thr2->Start("Parameterized");
}