| 
                                      33
                                 | 
| Charles Faiga · 技术社区 · 16 年前 | 
|   |      1 
                                  26
                             查尔斯,如果你读了三年级的代码,你能找到答案吗? 看到这个链接 http://wings-of-wind.com/2009/08/28/rad-studio-2010-community-pulse-the-day-after-part-2/ 编辑: 如果需要同步线程,可以使用基于tmutex、tevent和critical部分的方案。 再见。 | 
|   |      2 
                                  12
                             使用tthread.start而不是.resume --编辑—— 当然,start只能与delphi 2010(以及更高版本,大概)一起用于启动一个被创建为挂起的线程(在这里您以前会使用resume)。 不建议使用resume/suspend(或相应的winapi函数)进行线程同步。查看讨论 here (看看巴里凯利的评论)。 | 
|   |      3 
                                  6
                             暂停 和 简历 在 螺纹 类(如果查看源代码,您将看到suspend方法直接无条件地将布尔值设置为指示的线程挂起状态,而不是从线程句柄的执行计数更可靠地派生此状态。具有讽刺意味的是 简历 方法确实使用了这个更健壮的指标来 更新 挂起状态布尔值)。 这可能就是他们被否决的原因。这也是为什么我实现了自己的类,用一个更健壮的挂起和恢复机制来封装Windows线程,以及 重新启动 完成后的线程。 我不知道为什么他们的贬低被认为与同步有关。挂起和恢复线程不一定与同步有关,尽管我可以看到它可能是怎样的。值得注意的是,.NET框架线程类中的等效方法同样标记为已过时。线程挂起/恢复的Windows API文档中也出现了相同的注释w.r.t同步。 如果使用不推荐使用的方法会使您紧张,并且您仍然希望挂起/继续,则可以始终使用Windows API来 suspend and resume the thread by reference to it's handle . | 
|   |      4 
                                  4
                             线程行为控制代码应该位于线程过程中。使用适当的同步对象和相应的API调用以挂起/恢复线程执行。从外面做是一种危险的做法。因此,有一个决定要将其贬低。 | 
|   |      5 
                                  4
                             为了以防万一,你只想去掉编译器提示 (1)当 启动线程 … 代替 具有 (2)当 停止线程 …… 代替 具有 一点都不重要。当心 试图混淆 . | 
|   |      6 
                                  3
                             您应该按如下方式创建线程: 这样就不需要呼叫启动。 见 http://www.gerixsoft.com/blog/delphi/creating-threads 以解释此代码的工作原理。 | 
|   |      7 
                                  3
                             使用 或  | 
|   |      8 
                                  2
                             @米吉(我知道有点晚了) 例如madexcept和类似的。如果应用程序崩溃,并向用户显示错误报告,这意味着对话框等待使用输入。如果发生崩溃是线程操作的结果(不一定是线程崩溃),如果不挂起线程,屏幕将充满错误报告对话框。 示例2:日志记录。至少出于任何特定的原因,我需要记录一些线程的执行状态。包括当前堆栈跟踪。现在,正如您应该知道的,当线程运行时,您不能这样做,因为在收集有关它的信息的过程中,线程一直在做一些事情,所以在您完成收集时,收集到的信息将不一致。因此,需要挂起线程。 我可以继续介绍线程管理的实际例子。当然,这些并不是您在日常编程中所做的事情,但至少第一个示例我确信您中的许多人正在使用,即使您不知道它的内部结构。Debuggers?再一次,你使用它们。 但实际上,在所有这些情况下,都不使用tthread,因为这项工作是在线程句柄上完成的。因此,实际上,tthread suspend用法的一个有效示例很难找到。但总的来说,这是另一个故事。 | 
|   | Some1Else · 函数在Delphi中重新创建TForm 3 年前 | 
|   | Agmcz · Delphi安卓库。so未安装(AAB) 3 年前 | 
|   | nader · 如何使用delphi在web上提交表单 7 年前 | 
|   | kwadratens · Delphi中的卡方分布函数代码 7 年前 | 
|  | user9672569 · 如何在完整的位图图像中绘制阴影效果? 7 年前 | 
|   | mmmm · MSBuild(用于Delphi)Make-like功能 7 年前 |