看着 RAD Studio 11.1.5 写了一个小的 C++ Builder 测试程序使用线程。 我不断收到如下编译器错误: 编译错误信息如下: 有其他人注意到这一点吗? 此代码将在 C++ Builder 10.3.1 下编译。 ...
看着 RAD Studio 11.1.5 写了一个小的 C++ Builder 测试程序使用线程。 我不断收到如下编译器错误: 编译错误信息如下: 有其他人注意到这一点吗? 此代码将在 C++ Builder 10.3.1 下编译。 ...
这绝对是用于测试目的的基本代码。 而且我不知道为什么在单击按钮后新线程阻塞了 GUI(主线程)。 发生这种行为有什么原因吗? 我很抱歉这个愚蠢的问题,但我已经在这个基本的事情上花了几个小时,而且我是 FPC 的初学者。 ...
早上好,我想使用TThread对象来处理数值。 在重复的基础上(通过TTimer对象),不同的/更新的值总是在处理中呈现。 基本上: 我第一次创建并启动实际执行但未删除的TThread 。 随后(通过TTimer ),我获得了TThread处理的新值。 要求: 有没有办法用新值“重新 ...
我想做这样的事情:void TForm2::SetMsg(UnicodeString fMsg) { // If thread is not main Queue... if (GetCurrentThreadId() != System::MainThreadID) { TThr ...
我创建了一个新组件来播放波形和 MP3 文件,该组件包含用于跟踪播放位置的 Tprogressbar 和播放按钮,我通过在循环内使用 TIdThreadComponent 实现了这一点,这些组件工作正常,但我想改用 TThread TIdThreadComponent 的,在此先感谢您.. ...
我有一个 Delphi 2010 应用程序,它导出一个 DLL 并拥有library header。 它在 TThread 中创建 MainForm,如下所示: 每当我通过LoadLibrary function 加载此 DLL 时,应用程序运行良好。 (显然它使用我传递给LoadLibrary ...
TThread.OnTerminate的 Delphi 帮助指出: 分配给 OnTerminate 事件的方法在主线程的上下文中执行,而不是在被终止线程的上下文中执行。 甚至在主线程之外的另一个线程中创建线程时也会出现这种情况吗? 那么,是在创建TThread的线程中调用OnTerminate , ...
我发现了这个 Remy 的有趣代码。 Delphi:如何在本地创建和使用Thread? 可以这样做以便我可以执行多个线程并等待它们全部完成然后继续主线程吗? 我试过这样但没有成功...... ...
我正在创建一个线程,然后说要等待它通过 WFSO 调用终止(下面是简化的伪代码,显然没有人想在创建线程后立即等待它)。 在主线程中 我在做什么错/错过了什么? 如果我没有 WFSO,线程将在大约 10 秒内完成。 编辑:使用 FreeOnTerminate=false 创建不会产生此问题。 ...
在 Delphi 中,'Threadvar'(每个线程可用的变量的私有副本)和在 Thread 'private' 部分中声明的变量之间有什么区别,例如: 在后一种情况下,每个线程都应该有一个单独的 FValue 副本。 ...
我确实编写了一个使用Indy 10 TCP / IP Client和TThread的应用程序。 该应用程序连接到服务器Form.OnCreate事件并断开与它Form.OnClose事件。 与服务器的连接是在TThread实现的。 当我在断开以太网电缆连接的情况下启动应用程序并尝试关闭 ...
我想问几个问题,让我先向您解释一下事情,您可以在本文下方看到问题。 我创建了一个多线程应用程序,该程序可以从数据库读取和更新数据。 线程使用sendmessage与主线程通信。 我将指针TRecord传递给sendmessage并将指针放置在主线程中。 以下是显示流程结构的代码段: ...
我无法了解它是如何工作的。 首先是一个非常简单的例子,尝试更好地解释我的情况。 此代码位于在新项目中创建的新 Form1 中。 其中 mmo1 是 Memo 组件。 然后我有一个带有此事件的按钮: 我在备忘录上的输出是: 主题 4 主题 4 主题 4 我真的不明白。 第一个问题:为什么 ...
我正在尝试在线程中使用COM接口。 从我的阅读中,我必须在每个线程中调用CoInitialize/CoUninitialize 。 虽然这很好用: 当我将调用移至构造函数和析构函数时: 我得到EOleException:CoInitialize没有被称为异常,我也不知道为 ...
我有一个TThread对象,希望能够通过程序主窗体上的按钮启动/停止线程。 我一直在研究如何做到这一点,到目前为止,我有以下想法: 当用户单击“停止”时终止并释放该线程,并在单击“开始”时创建一个新线程。 使用sleep延迟线程(我不想这样做) 有一个属性是一个布尔值 ...
我正在使用TThread开发一个软件。 最近,我遇到了一个问题,即在程序启动几天后,TThread突然被破坏。 在TThread中,线程使用Synchronize()方法更改表单(例如TLable)的显示。 我想知道这可能会引起一些问题。 我正在记录线程中的几个部分,以便我可以 ...
我对如何在动态创建的TThread存储唯一标识符有一些学术兴趣。 我创建这样的东西: 我可以将唯一标识符传递给动态创建的线程,以便它可以在其sync方法中显示它吗? ...
我在这里遇到了一些问题。 我有一个继承TPersistent类的自定义类,在这个自定义类的内部(私有部分),我有一个定制的TThread,带有覆盖Execute方法,每次触发1000毫秒。 一切都很好,直到我将我的2个自定义类移动到新单元... 上面的代码在主项目单元中工作得很好,但 ...
在TThread实例创建和启动之间,主线程将继续执行代码。 如果主线程中的代码依赖于有问题的线程完全启动并运行,它必须以某种方式等待,直到线程Execute方法实际启动。 考虑以下代码: 如果没有等待IsRunning标志的循环, DoAction将无法成功将消息发布到包含的窗口 ...
使用:Windows VCL Forms应用程序,Delphi XE2 TThread执行期间是否可以更改VCL主线程中变量的值? 需要更新一个声明为TForm类的字段的Integer。 它会在重载(并重新引入)Create构造函数方法中作为var变量传递给TThread。 ...