小编Bas*_*sco的帖子

System.Drawing.dll中发生未处理的"System.OutOfMemoryException"类型异常附加信息:内存不足

我有一个列表"图像",其中包含约20张照片,每张约1MB.我想通过单击下一个按钮滚动列表中的图像.但在大约8张照片后,我记忆犹新.

    private void button4_Click(object sender, EventArgs e) //next
    {
        index++;
        if (index >= images.Count) index = 0;
        CurrImage = images[index]; 
        Bitmap b = new Bitmap((Bitmap)CurrImage.Clone()); //breakpoint occurs her
        pictureBox1.Image = b; 

        NewThread = new Thread(new ThreadStart(ChooseColors2));
    }
Run Code Online (Sandbox Code Playgroud)

ChooseColors2线程将使用"CurrImage"以避免竞争条件,我通过创建一个新的位图避免了这一点,如上所示

请注意,如果我使用pictureBox1.Image = CurrImage; 没有创建一个新的位图我没有得到这个错误,但线程将有竞争条件异常.

c# clone bitmap winforms

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

bitmap ×1

c# ×1

clone ×1

winforms ×1