问题标签 [thread-state]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
636 浏览

multithreading - 如何在win32 中获取线程的当前状态(例如阻塞、挂起、运行等)?

我找不到产生此信息的文档化 API。

一位朋友建议我使用 NtQuerySystemInformation。查找后,信息就在那里(参见SYSTEM_THREAD),但它没有记录,而且不是很优雅——我得到了系统中所有线程的信息。

你知道一个更优雅、最好有文档的 API 来做到这一点吗?

0 投票
6 回答
8412 浏览

c# - 如何判断线程是否成功退出?

根据ThreadState 的 MSDN 文档,可以通过以下两种方式之一进入 Stopped 状态:线程退出或线程被中止。

是否有某种机制可以通过正常退出来判断线程是否已进入 Stopped 状态?谢谢!

0 投票
8 回答
163331 浏览

c# - 如何检查线程是否完成执行

我有以下问题:

我想检查(C#)线程是否已完成执行,即线程方法是否已返回。我现在做的是 call Thread.Join(1),但这会产生 1 毫秒的延迟。有什么方法可以简单地检查线程是否已完成。检查Thread.ThreadState似乎太麻烦了。

0 投票
6 回答
3719 浏览

c# - 多线程工作线程状态

我将我的线程创建为

使用 threadCount(= 100, 150, 255 等...) 但我不知道有多少线程在工作。在执行时间。

我想控制所有线程何时完成工作。并给我一条消息,例如“所有线程都已死,作业已完成...”,例如 backgroundWorker 的 RunWorkerCompleted 事件

0 投票
3 回答
9261 浏览

c++ - 在 c++/windows 中获取线程状态


必须有一个函数可以获取系统中线程的当前状态,因为
有这个应用程序:http: //www.softwareverify.com/cpp/thread-status-monitor/index.html

它必须使用某种 API 函数或其他东西......我如何在 C++/Windows 中自己获取线程状态?
谢谢 :)

(这是我今天的最后一个问题。我保证:))

0 投票
5 回答
8701 浏览

java - 终止线程复兴

我在数组列表中存储了一堆线程对象。我希望能够随机启动这些线程。同一线程可以多次启动。在启动线程对象之前,我会检查线程是否处于活动状态,以及它们是否具有 NEW 或 TERMINATED 状态。这个限制是因为,我不想打扰“忙碌”的线程。现在,对于新线程,这工作正常。但是对于 TERMINATED 线程,我得到一个异常。

当一个线程结束时,它不应该回到“新”状态吗?或者线程是“一次性的” - 就像使用一次就完成了?

0 投票
3 回答
3115 浏览

c# - 这个线程状态函数是做什么的?

以下代码将 ThreadState 剥离为四个最有用的值之一:Unstarted、Running、WaitSleepJoin 和 Stopped:

我在一本书中阅读了上述内容,但我不太确定作者想在这里说明什么。我已经测试如下:

}

这是运行结果: Running Running Running Running Unstarted WaitSleepJoin Stopped

最后三行输出是直截了当的,但为什么所有其他输出运行状态?

谢谢!

0 投票
4 回答
2953 浏览

c++ - 如何在c ++中确定win32线程处于Wait或Join或Sleep状态

我实际搜索的是 .net ThreadState Enumeration的 c++/win32 等效项。

有什么建议么?

0 投票
1 回答
268 浏览

c# - 如何通过 Profiling API(ICofProfilerInfo 或任何 IMetadataImport 或任何其他方式)读取 System.Threading.Thread.ThreadState

有没有办法通过 Profiling API ICofProfilerInfo 或 IMetadataImport 接口或任何其他方式从非托管代码中读取托管线程的 System.Thread.ThreadState 属性?

例如这样的:

0 投票
1 回答
440 浏览

c# - 在 C# 中检查服务器操作状态。检查服务器进程状态(业务操作)

客户端应用程序在服务器上启动一个进程(通过 RIA,但实现并不重要)。当我说进程时,我指的是正在运行的业务代码,而不是指在 CPU 上运行的实际进程。

代码是 C#。

客户端然后检查以查看进程状态。失败,完成,仍在运行。

基础相对容易实现。我在服务器上静态存储了一个进程 ID,客户端可以在其中定期轮询服务器以检查进程,该进程将检查与进程 ID 关联的状态。

围绕这个的边缘情况需要更多的工作。异常中止线程(进程)而不允许代码处理异常并优雅地将与进程关联的状态设置为失败的致命和灾难性原因。在这种情况下,客户端将继续假设该过程仍在进行中。

我正在考虑在单独的线程中运行该进程并跟踪线程ID。当客户端调用服务器检查进程状态时,我们可以检查运行进程的线程的 IsAlive 属性。

我想知道是否有任何情况可能会出现问题?尽管线程已挂起,但 IsAlive 可能会返回 True 。

另一种方法是让服务器上的进程定期设置一个时间戳,当客户端检查状态时可以使用该时间戳。检查状态的代码可以查看时间戳的年龄,然后根据我们选择的任何时间间隔(比如说 2 分钟),它可以决定进程是否仍在运行(自上次写入时间戳以来还没有经过 2 分钟),或者进程无异常超时(自线程写入最后一个时间戳以来已超过 2 分钟)。所有时间戳都将在内存中完成。

是否有任何可能有益的最佳实践?有没有人对如何最好地解决这个问题有任何特别的见解或提示?我也对人们的其他场景或想法持开放态度?