1

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

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

我怎样才能结束线程?因为我尝试的以异常结束。

4

1 回答 1

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
    }
}
于 2013-09-11T14:58:23.800 回答