Delphi 线程安全MakeObjectInstance?

Delphi 线程安全MakeObjectInstance?,delphi,delphi-xe6,Delphi,Delphi Xe6,如何在线程中使用MakeObjectInstance?我知道有线程安全的AllocateHwnd函数发布在各个地方,但我似乎找不到MakeObjectInstance的线程安全函数 但是我发现这不适用于XE6?从评论中可以看出,您希望在主线程之外创建一个窗口句柄。您正确地注意到,您不能使用AllocateHWnd,因为它不是线程安全的。但是,您可以使用线程安全版本,例如Primoz提供的版本 您评论说它不允许您使用CreateWindowEx。但由于代码是作为源代码提供的,因此定制代码以满足您的

如何在线程中使用
MakeObjectInstance
?我知道有线程安全的
AllocateHwnd
函数发布在各个地方,但我似乎找不到
MakeObjectInstance
的线程安全函数


但是我发现这不适用于XE6?

从评论中可以看出,您希望在主线程之外创建一个窗口句柄。您正确地注意到,您不能使用
AllocateHWnd
,因为它不是线程安全的。但是,您可以使用线程安全版本,例如Primoz提供的版本

您评论说它不允许您使用
CreateWindowEx
。但由于代码是作为源代码提供的,因此定制代码以满足您的需要是很简单的


这是一个比
MakeObjectInstance
更干净的问题解决方案。它避免创建运行时thunk,并利用窗口句柄的实例内存。记忆存在的原因

你可以自己编写一个。用例是什么?为什么线程中需要
TWinContol
?再说一次,用例是什么?正如Remy和David所问的(这两次你都忽略了),为什么在线程中需要
TWinControl
?VCL不是线程安全的,
TWinControl
是VCL的一部分,因此
TWinControl
不是线程安全的。有什么问题吗?是的,我已经阅读了您的要求。我的评论是针对你的评论(后来删除了),你说“我需要从线程访问TWinControl”。我担心,忽视对更多信息的要求并不会真正有助于让人们来这里帮助你。也不是删除人们回应的评论,然后试图将他们视为愚蠢的问/说。我已经更新了问题。使你的答案过时。我认为没有任何过时之处