我的 C++ GUI 应用程序 (Visual Studio) 的一个事件中有两个线程。该函数必须运行一些代码,但我想在指定时间过去后结束线程。我做的线程是:
ThreadStart^ oThread = gcnew ThreadStart(this, &MyForm::ThreadMethod);
Thread^ newThread = gcnew Thread(oThread);
newThread->Start();
我怎样才能结束线程?因为我尝试的以异常结束。
我的 C++ GUI 应用程序 (Visual Studio) 的一个事件中有两个线程。该函数必须运行一些代码,但我想在指定时间过去后结束线程。我做的线程是:
ThreadStart^ oThread = gcnew ThreadStart(this, &MyForm::ThreadMethod);
Thread^ newThread = gcnew Thread(oThread);
newThread->Start();
我怎样才能结束线程?因为我尝试的以异常结束。
如果没有什么可以阻止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
}
}