私のC#アプリケーションには、100ミリ秒ごとにイベントをトリガーするタイマーがあります。このイベント内には、受信バッファが空になるか、さらに100ミリ秒が経過するまで、継続的にループするバストラフィックの受信ハンドラがあります。これは、実行時にアプリケーションで他のコントロールの1つを使用しようとするまでは正常に機能します。その後、アプリケーションがフリーズします。コントロールを使用しようとしたときに、バックグラウンドイベント(タイマーに関連付けられている)が実行を継続し、アプリケーションを停止させないように、アプリケーションをパーティション分割する(または変更する)方法について誰かが考えていますか?Microsoft Visual C#2008ExpressEditionを使用しています。ありがとう。
1 に答える
3
受信ハンドラーにはBackgroundWorker (または同等の構成)を使用する必要があります。そうすれば、別のスレッドで実行され、フォームがタイムリーに応答できるようになり、ループにタイマーが必要なくなります。
于 2010-01-08T23:14:17.553 に答える