ループの代わりにタイマーを作成し、そのタイマーでステータスを確認します。
データがどこから来ているかを説明したコメントの後に解決しました(非同期COMコンポーネントのプロパティ):
リアルタイム クライアント サーバー プロジェクトで vb6 IDE を使用しています。いくつかの変数を読み取る必要があり、これらのいずれかがステータスを変更すると、サーバーにソケット メッセージが送信されます。睡眠と同じようにくっついた
役に立たなかったもの: DoEvents と sleep
DoEvents
Sleep 100
役立つかもしれませんが、windows 関数のスリープを参照する必要があります。しかし、VB6 はシングル スレッド (1 つは UI 用、もう 1 つはロジック用) であるため、ループから抜け出す方法が必要です。あなたは本当に何をしようとしていますか?トップレベルで説明できますか?
VB6 IDE または Office の VBA コードで作業していますか?
スリープを機能させるには、次のように宣言します。
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
こちらもご覧ください https://stackoverflow.com/a/4540553/1643558
値 1 と 2 を読み取るためにユーザーにフォームを表示する場合は、モーダル フォームを使用して、完了時にクリックするボタンを設定し、値が気に入った場合にのみフォームを非表示にすることができます。その場合、ループする必要はありません。モーダル フォームでもエラー MsgBox を表示できます。
http://www.tek-tips.com/viewthread.cfm?qid=1117372を参照してください。
おそらくスリープを削除し、DoEvents のみを保持します。
ループの代わりにタイマーを作成し、そのタイマーでステータスを確認することもできます