2016-08-15 81 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