结束线程^未完成

时间:2013-09-11 14:34:00

标签: .net multithreading c++-cli

我的C ++ GUI应用程序(Visual Studio)中的事件中有两个线程。该函数必须运行一些代码,但我希望在经过指定的时间后结束该线程。我所做的主题是:

ThreadStart^ oThread = gcnew ThreadStart(this, &MyForm::ThreadMethod);
Thread^ newThread = gcnew Thread(oThread);
newThread->Start();

如何结束线程?因为我尝试的结果是例外。

1 个答案:

答案 0 :(得分:3)

如果没有什么阻止MyForm::ThreadMethod跟踪自己花费的时间,为什么不将时间整合到您的线程工作中呢?

void ThreadMethod
{
    Int64 watchdog = 1000L * 5L * 60L; // 5 minutes
    System::Diagnostics::Stopwatch^ sw
        = System::Diagnostics::Stopwatch::StartNew();

    while (sw->ElapsedMilliseconds < watchdog
        && otherCondition)
    {
         // do your work here
    }
}