1

バックグラウンド:

私のプログラムは、ライブ ビデオの winform アプリケーションです。PictureBox私のフォームには3つあります。これらの画像ボックスは、親フォームのサイズに従って自動的にサイズ変更されます。Invoke私のプログラムのスレッドは、安全な方法を使用して、30 fps カメラからの 3 つの 2048x2048 画像でこれらの画像ボックスを更新します。

問題:

フォームが十分に小さい場合、問題のあるピクチャ ボックスは他のピクチャ ボックスよりも少し遅くなりますが、3 つのピクチャ ボックスはすべて正常に表示されます。しかし、フォームが大きくなると、画像ボックスの 1 つだけが更新されず、他の 2 つが適切に更新されます。参考までに、これらの写真は同時にピクセル ボックスにプッシュされます。ばかげているように聞こえるかもしれませんが、問題のある画像ボックスに欠陥があるように見えます

質問:

この現象が発生する理由を理解したいと思います - 同じサイズの画像ボックスが同時に同じサイズの画像を取得しましたが、そのうちの 1 つだけが更新されません。これはビデオカードの問題ですか?これを修正する方法はありますか?

4

2 に答える 2

0

アップデート:

これはフォームの更新の問題だと思うので、定期的にフォームを更新するスレッドを作成しました。そして、未更新の問題は解決したと思います。

    private void MyForm_Load(object sender, EventArgs e)
    {
        Thread thread = new Thread(() =>
        {
            while (!m_bFormClose)
            {
                this.SafeInvoke(Refresh);
                Thread.Sleep(500);
            }
        });
        thread.Start();
    }

これはタイマーでできると思いますが、スレッドの方が安全だと思います。もっと良い方法があれば、コメントまたは回答してください。

于 2012-12-01T18:32:42.923 に答える
0

C# オープン ソース ispy ソフトウェアhttp://www.ispyconnect.com/を使用してみてください

于 2012-11-30T22:50:37.407 に答える