私はC#で小さなWinFormsアプリケーションを構築しています。これはバーコードスキャナーとインターフェースし、バーコードをスキャンしてバーコードでラベル付けされたアイテムをチェックイン/チェックアウトし、それらに対して操作を実行し、情報を中央サーバー。ただし、継続的にチェックしたいことが2つあります。
- バーコード スキャナーがデバイスに接続されていますか?
- ネットワーク接続はありますか?false の場合はデータをローカルにバッファリングし、true の場合はローカル データがある場合は中央サーバーへのデータ転送を開始します
GUI も更新されます (上部に「ONLINE」/「OFFLINE」メッセージが表示され、スキャナーが接続されていないと GUI を使用できません)。
これを実現する方法は、2 つの BackgroundWorker を継続的に実行し、デバイスの状態をポーリングして頻繁に報告することです。ただし、この「一定の」使用が BackgroundWorker オブジェクトの正しい使用方法であるかどうかはわかりません。
C# WinForms アプリでこれらの種類のバックグラウンド チェックを実行するためのより良い/よりクリーンな方法はありますか?