2016-08-15 85 views
0

任何人都可以告诉我在Delphi中这个VB代码的等价物是什么?等效的VB.NET WaitOne()&设置()在德尔福

我需要使用:

ResetMyEvent: THandle; //?? 

从一个小控制台应用程序复制这些VB线。没有可视组件。

谢谢。

Module MyModule 
    Private WithEvents Obj As MyInterface 
    Private WaitForStartLibrary As AutoResetEvent = New AutoResetEvent(False) 

Sub Main() 
    Obj.StartLibrary(param1, param2,...) 

    If WaitForStartLibrary.WaitOne(5000) = False Then//How can I do this w/out timer comp ? 
    Throw New Exception("Operation timed out") 
    End If 
End Sub 

//Event 
Private Sub StartLibraryCallBack() Handles Obj.StartLibraryCallBack 
    WaitForStartLibrary.Set() 
End Sub 

回答

5

德尔福相当于.net AutoResetEventTEvent

  • 当你create它传递FalseManualReset参数,它会给你一个自动重置事件。
  • 要等待活动,请致电WaitFor
  • 要设置活动,请致电SetEvent
+0

非常感谢。 VB代码非常优雅,我想在Delphi中实现同样的功能,但不知道如何。 我目前在我的应用程序中没有线程。 看着你的答案我正在使用这些行,但不知道如何将所有内容放在一起以获得与VB代码相同的结果: WaitForStartLibrary:= TEvent.Create(nil,false,false,''); WaitForStartLibrary.WaitFor(5000); // App挂在这里! (在StartLibraryCallBack事件中的代码) WaitForStartLibrary.SetEvent; 如果你给我一个例子,我将不胜感激。 谢谢。 – Walid