2016-08-15 1 views
0

誰でもこのvbコードと同等のものがDelphiで教えてもらえますか?DelphiのVB.NET WaitOne()&Set()に相当する

私が使用する必要がありますか:

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 AutoResetEventとデルファイ当量TEventあります。

  • あなたはそれがあなたの自動リセットイベントを与えるManualReset引数にFalseを渡すcreate
  • イベントを待機するには、WaitForに電話してください。
  • イベントを設定するには、SetEventに電話してください。
+0

ありがとうございました。 VBコードは非常にエレガントです。私は同じことをDelphiで実現したいと思いますが、どうしたらよいかわかりません。 私のアプリケーションには今のところスレッドがありません。 あなたの答えを見て&私はこれらの行を使用していますが、すべてをまとめてVBコードと同じ結果を得る方法がわからない: WaitForStartLibrary:= TEvent.Create(nil、false、false、 ''); WaitForStartLibrary.WaitFor(5000); //アプリケーションがここにハングアップします! (StartLibraryCallBackイベントのコード) WaitForStartLibrary.SetEvent; 私が例を挙げると感謝しています。 ありがとうございます。 – Walid

関連する問題