什么替代TThread

时间:2012-04-24 03:09:42

标签: visual-c++ c++builder tthread

我有用Borland C ++编写的USB通信源代码(“USBThread类”),并使用Visual Component Library(“vcl.h”)。 现在我的任务是将其移植到Visual C ++,因为我们没有购买Borland C ++。

但是这个“USBThread类”继承自“vcl.h”中的基类,称为“TThread”。

我可以问一下,在Visual C ++中,我可以使用什么样的基类来替换“TThread”作为新的继承源?

原始代码使用来自TThread的“WaitFor”和“Terminate”方法, 我不知道如何使用Visual C ++实现这两个menthod。

谢谢!

2 个答案:

答案 0 :(得分:0)

这可能是一个很难的exoice imo,但看起来Boost.Thread使用join WaitForinterrupt使用Terminate会让你开始。

我的基础是对docs for VCL found here的审核。我说这可能很困难,因为VCL可能有无记录或其他意外的行为。

答案 1 :(得分:0)

虽然您可以将VCL的TThread类转换为C ++,但它不能很好地工作,因为它依赖于一些根本不转换为C ++的Delphi语义(特别是TObject::AfterConstruction()方法)。您最好只需重新编写USBThread即可直接使用Win32线程函数,即CreateThread()WaitForSingleObject()。对于Terminate(),您只需在线程过程可以定期查看的位置设置bool标志,并在设置为true时停止其工作。