Aborting Threads : Abort « Thread « Visual C++ .NET

Home
Visual C++ .NET
1.2D
2.Class
3.Collections
4.Data Type
5.Database ADO.net
6.Delegate
7.Development
8.File Directory
9.Function
10.Generics
11.GUI Form
12.Language Basics
13.Network
14.Reflection
15.Security
16.Statement
17.Structure
18.Thread
19.XML
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Visual C++ .NET » Thread » Abort 
Aborting Threads
 
#include "stdafx.h"
using namespace System;
using namespace System::Threading;

ref class MyThread
{
public:
    static void ThreadFunc(Object ^Name);
};

void MyThread::ThreadFunc(Object ^Name)
{
    Thread ^thr = Thread::CurrentThread;
    try
    {
        for (int i = 0; i < 100; i++)
        {
            Console::WriteLine("{0} {1}", Name, i.ToString());
            Thread::Sleep(1);
        }
        return;
    }
    catch (ThreadAbortException^)
    {
        Console::WriteLine("{0} Aborted", Name);
    }
}

void main()
{
    Thread ^thr1 = gcnew Thread(gcnew ParameterizedThreadStart(&MyThread::ThreadFunc));
    Thread ^thr2 = gcnew Thread(gcnew ParameterizedThreadStart(&MyThread::ThreadFunc));

    thr1->Start("Thread1");
    thr2->Start("Thread2");

    Thread::Sleep(2);
    thr1->Abort();
    Thread::Sleep(4);
    thr2->Abort();


    try
    {
        thr1->Start();
    }
    catch (ThreadStateException ^tse)
    {
        Console::WriteLine(tse->ToString());
    }
}

   
  
Related examples in the same category
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.