大きな戦いの後、私は "ゲームエンジン"を書いて、私は非常に奇妙なバグを発見しました。 フォームを移動するとOutOfMemoryの例外が発生します(アプリケーションは24 MBを必要としないから5秒以内に6 GB以上のRAMに移行します)が、それは最悪のことではありません。これはフォームを上に移動するときにのみ表示され、他の方向には何も起こりません。ここで私は、これがアップ特有のOutOfMemory例外
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication10
{
public partial class Form1 : Form
{
Graphics h;
Bitmap bmp;
System.Threading.Thread WTF;
public Form1()
{
InitializeComponent();
}
private void LOL()
{
bmp = new Bitmap(500, 500);
Graphics WHAAAAT = Graphics.FromImage(bmp);
while (true)
{
WHAAAAT.FillEllipse(Brushes.Black, 50, 50, 50, 50);
h.DrawImage(bmp, 0, 0);
}
}
private void WOOT(Graphics g)
{
h = g;
WTF = new System.Threading.Thread(new System.Threading.ThreadStart(LOL));
WTF.Start();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics d = panel1.CreateGraphics();
d.FillEllipse(Brushes.Black, 50, 50, 50, 50);
WOOT(d);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
WTF.Abort();
}
}
}
フォームの境界線スタイルがsingleFixedに設定されているフォームを移動した後すぐにクラッシュが自分のアプリケーションとして動作するsimilary書いたコードの一部です。なぜこのことが起こるのか? 私の場合には、それは巨大なRAMの使用によって引き起こされる他の例外がスローされますが、それはまた、あなたがこれはバグではありません
プロファイルしましたか? – Carcigenicate
という名前の変数を持つWTFは、鼻の悪魔のためのC#バックドアです。そのため、奇妙なことが起こっています:) –