0

私はこれを理解するために何時間も努力してきました。これが実行されると、システムのメモリがなくなるまで実行されます。使用後に作成したbmpを破棄してみましたが、違いはありませんでした。また、Webブラウザーを破棄しようとしましたが、適切な高さ/幅などのループでWebページを実行してキャプチャする必要があります。ループして破棄するすべての新しいWebブラウザーを作成しようとしましたが、機能しませんでした。ここで何が起こっているのか誰にもわかりますか?

ループ:

        wbcondor1.AllowNavigation = true;
        wbcondor1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wbcondor1_DocumentCompleted);
        wbcondor1.Navigate("blanked out");

完成した書類

  private void wbcondor1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        Bitmap condor1bmp = new Bitmap(600, 1000);
        wbcondor1.DrawToBitmap(condor1bmp, new Rectangle(wbcondor1.Location.X, wbcondor1.Location.Y, wbcondor1.Width, wbcondor1.Height));

        if (Convert.ToString(condor1bmp.GetPixel(553, 558)) == "Color [A=255, R=232, G=30, B=48]") { c1to1.Text = "lower"; }
        if (Convert.ToString(condor1bmp.GetPixel(553, 584)) == "Color [A=255, R=232, G=30, B=48]") { c1to2.Text = "lower"; }
        if (Convert.ToString(condor1bmp.GetPixel(553, 608)) == "Color [A=255, R=232, G=30, B=48]") { c1to3.Text = "lower"; }
        if (Convert.ToString(condor1bmp.GetPixel(553, 633)) == "Color [A=255, R=232, G=30, B=48]") { c1to4.Text = "lower"; }
        if (Convert.ToString(condor1bmp.GetPixel(553, 658)) == "Color [A=255, R=232, G=30, B=48]") { c1to5.Text = "lower"; }

        if (Convert.ToString(condor1bmp.GetPixel(553, 558)) == "Color [A=255, R=0, G=175, B=88]") { c1to1.Text = "higher"; }
        if (Convert.ToString(condor1bmp.GetPixel(553, 584)) == "Color [A=255, R=0, G=175, B=88]") { c1to2.Text = "higher"; }
        if (Convert.ToString(condor1bmp.GetPixel(553, 608)) == "Color [A=255, R=0, G=175, B=88]") { c1to3.Text = "higher"; }
        if (Convert.ToString(condor1bmp.GetPixel(553, 633)) == "Color [A=255, R=0, G=175, B=88]") { c1to4.Text = "higher"; }
        if (Convert.ToString(condor1bmp.GetPixel(553, 658)) == "Color [A=255, R=0, G=175, B=88]") { c1to5.Text = "higher"; }
        // bmp.Save("condor1.gif");
        condor1bmp.Dispose();
    }

ありがとう、誰かが私が欠けているものを見ることができることを願っています:(

4

2 に答える 2

0

例外がスローされた場合、

condor1bmp.Dispose();

呼び出されません。

IDisposableを実装するものをラップするには、常にusingステートメントを使用します。

それ以外にも、実際にメモリ不足になる以外に、Bitmap を操作しているときに OutOfMemoryException を引き起こす可能性があるものがたくさんあります。

いくつかの可能性については、次を参照してください。

ビットマップ作成時の C# のメモリ不足

ストレス テストがこれらの条件のいずれかに該当する可能性はありますか?

于 2012-10-02T18:42:13.863 に答える
0

誰がこのエラーに遭遇したかを人々に知らせるためだけに。行 x でメモリが不足しています。Internet Explorer自体の問題です。IE 設定でアクティブ スクリプトを無効にして JavaScript を無効にすることで停止できます。

于 2012-10-04T20:33:12.957 に答える