一定の時間(30秒)以内にイベントを待つ必要があり、この時間が経過するとタイムアウトする必要があります。私は何をする必要がありますか?vb.netのDLLでタイマーを使用
dllからサーバーにコマンドを送信しています。応答を待ってから別のサーバーに送信する必要があります。タイムアウト機能を実装したいのですが、なぜタイマを使用する必要がありますか?
私はタイマーを使いたいのですが、DLLでどのように使用するのか分かりません。
一定の時間(30秒)以内にイベントを待つ必要があり、この時間が経過するとタイムアウトする必要があります。私は何をする必要がありますか?vb.netのDLLでタイマーを使用
dllからサーバーにコマンドを送信しています。応答を待ってから別のサーバーに送信する必要があります。タイムアウト機能を実装したいのですが、なぜタイマを使用する必要がありますか?
私はタイマーを使いたいのですが、DLLでどのように使用するのか分かりません。
時間の間隔を表現するためにタイマーを使用すると、一般的に悪い考えである理由コードのこの小さな作品は示して
Dim WithEvents myTimer As New Windows.Forms.Timer 'a timer
Dim stpw As New Stopwatch
Dim count As Long
Const intervalValue As Integer = 1000 'some number of ms. s/b > 10
Private Sub myTimer_Tick(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles myTimer.Tick
count += 1
Dim foo As Long = count * intervalValue 'the interval using tick firing every intervalValue ms.
Dim bar As Long = stpw.ElapsedMilliseconds 'the actual amount of time that has passed
Label1.Text = foo.ToString("n0")
Label2.Text = bar.ToString("n0")
Label3.Text = (bar - foo).ToString("n0") 'show error
End Sub
Private Sub Form1_Shown(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Shown
myTimer.Interval = intervalValue 'number of ms.
myTimer.Start()
stpw.Start()
End Sub
より良い方法は、あなたのための1秒を言って、いくつかの小さな値にタイマーを設定することです例を見て、経過時間があなたが探している値よりも大きいかどうかを確認してください。
メールを送信するためにsmtpサーバに接続していますが、クラスライブラリのUIをフリーズすることなくレスポンスを待つ方法 – Smith
あなたが示したコードが何かを考え出すのではなくあなたはちょうど私に言うことができますか?あなたは 'タイマー'が決議が保証されていないと言っていますか?あなたが期待する以上の時間がかかるかもしれませんか?うん、それはかなりよく知られていると思った。タイマーコントロールを使用することは禁忌です。値を正しく確認する必要があります。 –
SMTPクライアントを使用している場合、ブロックされない送信非同期メソッドがあります。 @cody - それはかなりよく知られています。 – dbasnett
.NET - System.Windows.Forms.Timer
,System.Threading.Timer
およびSystem.Timers.Timer
およびSystem.Windows.DispatcherTimer
には4つのタイマーがあります。
実行可能ファイルだけでなくクラスライブラリからも使用できますが、状況に応じて最適なものを選択する必要があります。これはあまり明確ではありません。
UIスレッド内で実行する予定の場合は、適切なUIベースのタイマーを使用する必要があります。そうでなければ他の1つ。より多くの情報を提供することができれば、より多くの情報を手に入れることができます。
タイマーはタイマーです。それがDLLに入っているかどうかは重要ですか?現時点で私はあなたの問題が何かを見ることができないので、あなたのアプリの部分がどのようにフィットしているかについて、より詳細をいくつか教えてください。 –
@David Heffernan dllからサーバーにコマンドを送信しています。応答を待ってから別のコマンドを送信する必要があります。私はタイムアウト機能を実装したい – Smith