我的C ++ GUI应用程序(Visual Studio)中的事件中有两个线程。该函数必须运行一些代码,但我希望在经过指定的时间后结束该线程。我所做的主题是:
ThreadStart^ oThread = gcnew ThreadStart(this, &MyForm::ThreadMethod);
Thread^ newThread = gcnew Thread(oThread);
newThread->Start();
如何结束线程?因为我尝试的结果是例外。
答案 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
}
}