.net - 未完成的结束线程^

标签 .net multithreading c++-cli

我的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
    }
}

关于.net - 未完成的结束线程^,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744086/

相关文章:

.net - 使用成员(member) API 的主要缺点是什么?

.net - .NET 中是否有一组适用于 FFMpeg、libavutil、libavformat 和 libavcodec 的有效 P/Invoke 声明?

c# - 将 CSV 字符串反序列化为 C# 对象

multithreading - SQL Server中的多线程

javascript - Web Worker 消耗大量内存

c++-cli - 在 C++/CLI 中如何处理句柄?

c# - 动态 Excel 电子表格

客户端服务器 tcp/ip 聊天室应用程序

c++ - 删除数组时出现访问冲突异常

c# - OpenSubKey 在 C++ 中的行为与在 C# 中的不同