获取当前正在执行的线程的TThread对象?

2024-02-04

我想要一个像 GetCurrentThread 这样的函数,它返回当前执行线程的 TThread 对象。我知道有一个 Win32 API 调用 GetCurrentThread,但它返回线程 Id。如果有可能从该 ID 获取 TThread 对象也没关系。


从你自己的答案来看,你似乎只想“确定是否在主线程中运行”,在这种情况下你可以使用

if Windows.GetCurrentThreadId() = System.MainThreadID then
// ...

尽管如果使用 Delphi 创建的 DLL 由工作线程加载,则这将无法工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取当前正在执行的线程的TThread对象? 的相关文章

  • 使用 Delphi 读取 Excel 电子表格

    我需要使用 Delphi 2010 读取和写入 Excel 电子表格 没什么花哨的 只需读取和写入不同工作表上特定单元格和范围的值 需要在没有安装 Excel 的情况下工作并支持 Excel 2007 我看过的一些东西 我尝试过使用ADO
  • 有没有办法等待原子整数的变化

    有没有办法等待AtomicInteger这样我就不必继续休眠当前线程并继续检查AtomicInteger像这样 while atomicInt get gt 0 Thread sleep 1000 我知道有这样的事情CountDownLat
  • 一段时间后终止线程的最 Pythonic 方法

    我想在线程中运行一个进程 它正在迭代一个大型数据库表 当线程运行时 我只想让程序等待 如果该线程花费的时间超过 30 秒 我想终止该线程并执行其他操作 通过终止线程 我的意思是我希望它停止活动并优雅地释放资源 我认为最好的方法是通过Thre
  • 如何在同一线程中创建JFrame以使其阻塞?

    出于调试目的 我需要在一个简单的窗口中在屏幕上绘制图像 Swing 在单独的消息循环线程中处理所有事件 这意味着如果我执行以下操作 while true Get screenshot BufferedImage screenshot MSW
  • .NET 紧凑框架中的信号量

    不幸的是 使用 NET Compact Framework 时 System Threading 中没有信号量 我不确定为什么会这样 有人有想法吗 经过谷歌搜索后 我发现很多人给出了他们自己的实现 但他们中没有一个真正工作得很好 或者根本没
  • 确保 Clojure 中只有一个服务实例正在运行/启动/停止的规范方法?

    我正在用 Neo4j 支持的 Clojure 编写一个有状态服务器 它可以服务套接字请求 例如 HTTP 当然 这意味着我需要能够从该服务器内启动和停止套接字服务器 在设计方面 我希望能够在此服务器中声明一个 服务 并启动和停止它 我在 C
  • (发件人:TObject)

    发件人 TObject 是什么意思 如 procedure TForm1 Button1Click Sender TObject var s Integer begin end Sender 是对触发事件的组件的引用 在这种情况下 Send
  • 使用 TArray 而不是 Array of T 的原因是什么?

    我正在将遗留的 Delphi 应用程序迁移到 Delphi XE2 我想知道是否有充分的理由替换定义为的数组Array of MyType to TArray
  • Java基于参数的同步(名为互斥锁/锁)

    我正在寻找一种根据接收到的参数来同步方法的方法 如下所示 public synchronized void doSomething name some code 我想要方法doSomething同步基于name参数如下 线程 1 doSom
  • 为什么我的多螺纹嵌件比单螺纹嵌件性能更好?

    我调查了并发性 http docs mongodb org manual faq concurrency how granular are locks in mongodb在 MongoDB 中 显然它使用了数据库级锁定系统 我认为这意味着
  • Play 框架:异步与同步性能

    我有以下代码 def sync Action val t0 System nanoTime Thread sleep 100 val t1 System nanoTime Ok Elapsed time t1 t0 1000000 0 ms
  • 如何使用 JAVA 代码以编程方式捕获线程转储?

    我想通过 java 代码生成线程转储 我尝试使用 ThreadMXBean 为此 但我没有以正确的格式获得线程转储 因为我们正在使用jstack命令 请任何人提供一些帮助 他们是否有其他方式获取线程转储 使用任何其他 API 我想要的线程转
  • 从直方图计算平均值和百分位数?

    我编写了一个计时器 可以测量任何多线程应用程序中特定代码的性能 在下面的计时器中 它还会在地图中填充花费了 x 毫秒的调用次数 我将使用这张图作为我的直方图的一部分来进行进一步的分析 例如调用花费了这么多毫秒的百分比等等 public st
  • 在网格上拖动时拖动图像更改

    我正在 StartDrag 上创建自定义 DragObject 的实例 procedure TForm1 GridStartDrag Sender TObject var DragObject TDragObject begin DragO
  • 从另一个线程调用 show 后 Windows 窗体窗体挂起

    我的应用程序有一些异步运行的网络代码 我附加了一些在没有连接到服务器时抛出的事件 并且在发生这种情况时我正在创建一些 操作失败 表单 问题是我的表单在创建后挂起 我读到了相关内容 并尝试这样做 public void ShowView if
  • 面向 Delphi 开发人员的 Qt

    有人知道为 Delphi C Builder VCL 开发人员解释 Qt 的书籍或教程吗 对于具有该背景的开发人员来说 学习 Qt 的最佳方法是什么 我对如何使用 Qt 完成我知道如何在 Delphi 中完成的事情特别感兴趣 例如 Qt 相
  • 使用 boost 线程和非静态类函数

    所以我做了一些研究 发现你可以创建一个 boost thread 对象 并通过使用 this 和 boost bind 等以非静态类函数开头 这确实没有多大意义对我来说 我能找到的所有示例都在与其启动的函数相同的类中启动了 boost th
  • 使用远程数据编写 Android、iPad、iPhone 客户端的技术

    我需要探索世界 你写了一个杀手级应用程序 但你有 Android iPhone iPad 客户端吗 我的问题是 1 向这些设备发送数据的最佳方式是什么 按照建议进行肥皂和休息here https stackoverflow com ques
  • Windows 更新后 Active 设置为 False 时 TIdHttpServer 冻结

    我们有一个 Indy 版本 10 6 1 5235 TIdHttpServer 服务 多年来一直与 Delphi 2007 配合良好 在最新的 Windows 更新 KB4338815 和 KB4338830 之后 我们注意到当 TIdHt
  • 对 STL 容器的安全并行只读访问

    我想要访问基于 STL 的容器只读 from parallel运行线程 无需使用任何用户实现的锁定 以下代码的基础是 C 11 并正确实现了该标准 http gcc gnu org onlinedocs libstdc manual usi

随机推荐

  • Dart 确保类中的可选布尔值不为空

    由于它是一个可选值 有时会为空 那么如何避免它抛出错误呢 这是唯一的方法吗 class QText extends StatelessWidget QText this text this size this bold final Stri
  • 将第二个项目添加到堆栈窗格时,第一个项目会丢失其 Event/MouseOn。为什么?我该如何修复? JavaFX

    我有一个堆栈窗格 当我将第二个项目添加到堆栈窗格时 两者都会显示 但我无法再单击第一个项目 它变得 不可点击 我在 setonmouse 中定义的内容不起作用 它适用于我的第二个项目 如果我切换它们在堆栈窗格中的顺序 则另一个可以工作 但不
  • 在 OS X 中创建目录硬链接的 Unix 命令是什么?

    如何在 OS X 中创建指向目录的硬链接 而不是符号链接或 Mac OS 别名 我已经知道命令 ln target destination 但仅当目标是文件时才有效 我知道 Mac OS 与其他 Unix 环境不同 允许硬链接到文件夹 例如
  • JMS事务

    数据库事务是一个熟悉的概念 try updateDB commit catch error rollback 如果发生任何错误 updateDB 所做的任何更改都将被丢弃 我想知道消息队列事务回滚将撤消什么 try EDIT swapped
  • 角度引导模式在输入点击时打开

    在我的控制器中我有方法 scope openJukeboxesModalToGroup 打开模式弹出窗口 scope search Jukeboxes 在页面上搜索 scope keyPressed 捕获按键 在带有表格的部分
  • Git 包文件被截断

    当尝试将 Egit 与 Eclipse 一起使用时 我随机收到错误 包文件被截断 我不知道这是如何以及为何发生的 即使再次导入项目也没有帮助 这里有什么问题 我遇到了同样的错误 并认识到当我尝试在 Eclipse 中导入并打开本地 git
  • Maven读取属性文件中的环境变量

    如何读取属性文件中的系统环境变量 我正在使用 MyBatis maven 插件进行数据库迁移 MyBatis 根据环境使用属性文件 我正在尝试读取属性文件中的环境变量 例如 开发 property username env username
  • 在 Firefox 中使用 morris.js 脚本不再回答任何错误

    我正在使用 morris js 库http www oesmith co uk morris js http www oesmith co uk morris js 为了为网站创建图表 它适用于 Opera Internet Explore
  • 如何在Python中使用subprocess.call杀死一个调用的子进程? [复制]

    这个问题在这里已经有答案了 我正在使用调用命令 subprocess call cmd shell True 该命令不会自动终止 怎么杀掉它呢 Since subprocess call等待命令完成 您无法以编程方式终止它 您唯一的办法是通
  • suPHP 有安全性吗?

    我不久前问过这个问题 尽管我提供了一些赏金 但我从未得到太多答案 请参阅here https stackoverflow com questions 8032140 implementing log in alongside suphp 更
  • App.config 似乎被忽略

    作为重构操作的结果 我有了这个类库 我添加了一个 App config 文件并添加了如下内容
  • Spring Websockets STOMP - 获取客户端IP地址

    有没有办法获取STOMP客户端IP地址 我正在拦截入站通道 但我看不到任何方法来检查 IP 地址 任何帮助表示赞赏 您可以在握手期间将客户端 IP 设置为 WebSocket 会话属性HandshakeInterceptor public
  • 检查是否启用了锁定

    我必须检查设置中是否启用了系统锁定 我使用下面的代码行 boolean b android provider Settings System getInt getContentResolver Settings System LOCK PA
  • 如何使用新的 Slick 2.0 HList 克服 22 列限制?

    我目前正在编写 Slick 代码来针对具有两个表 gt 22 列的旧模式 我如何使用新的 HList 代码 http slick typesafe com doc 2 0 0 M3 api scala slick collection he
  • 经过后台推送的一些测试/调试后,iPhone 上的“pushDisallowed”和“决定:绝对不能继续”

    我正在创建一个 Xamarin Forms 应用程序 它通过 Azure 通知中心使用后台推送 该应用程序针对 Android 和 iOS 经过一些初步原型设计和测试后 一切在两个平台上都运行良好 对于 iOS 我发送包含以下内容的推送 a
  • 如何阻止 UIBarButtonItem 文本被截断?

    我有一个UIBarButtonItem在导航栏中 文本标题为 保存 当我切换到全屏时UIPopoverController然后关闭它 我的 UIBarButtonItem 中的文本被截断为 S e 对于所有其他的 Segues 和视图 我返
  • VBA Excel - IFERROR 和 VLOOKUP 错误

    我正在尝试在 Excel VBA 中创建与 IFERROR VLOOKUP 1 公式等效的内容 其中该函数将在数据表中查找文本 如果文本位于表中 则返回第五列中的数字如果不是 则为 1 我已经在 Excel 中测试了上述公式 它给了我想要的
  • 无缝 HTML5 视频循环

    我进行了广泛的搜索以找到解决此问题的方法 但没有成功 我创建了一个 4 秒的视频剪辑 可以在编辑器中无缝循环 然而 当剪辑通过 Safari Chrome 或 Firefox 在页面中运行时 从结尾到开头的播放会出现一个小但明显的暂停 我尝
  • java.lang.NullPointerException Selenium 2 类

    当我的程序从本地计算机运行时运行良好 无需使用带有远程 Web 驱动程序的 selenium 网格 但是 当我使用带有远程 Web 驱动程序的 selenium 网格设置相同的测试用例时 在 eclipse 中收到消息说 java lang
  • 获取当前正在执行的线程的TThread对象?

    我想要一个像 GetCurrentThread 这样的函数 它返回当前执行线程的 TThread 对象 我知道有一个 Win32 API 调用 GetCurrentThread 但它返回线程 Id 如果有可能从该 ID 获取 TThread