gpt4 book ai didi

c# - .NET 问题 在一台计算机上工作正常,在另一台计算机上出现堆栈溢出异常

转载 作者:行者123 更新时间:2023-11-30 15:10:54 24 4
gpt4 key购买 nike

我在 System.Drawing.Graphics 中使用一些图形函数(如 drawElipse 和 drawLine)编写了一个简单的 C# 程序。它在一台计算机上运行完美,但在我的笔记本电脑上,它在图形功能上出现溢出异常。五小时后,我需要该程序在笔记本电脑上运行以进行演示,请帮助我。

这里是我得到错误的两个函数:

private void drawDot(int n)
{
Graphics gfx = CreateGraphics();
int mapx = (int)verts[n].mapx;
int mapy = (int)verts[n].mapy;
Pen myPen = new Pen(Color.DarkOliveGreen, 5);
if (mapx > 2 && mapy > 2)
{

Rectangle rect = new Rectangle((int)mapy - 2, (int)mapx - 2, 10, 10);
gfx.DrawEllipse(myPen, rect);
}

}

private void drawLine(int n, int k)
{
int mapnx = (int)verts[n].mapx;
int mapny = (int)verts[n].mapy;
int mapkx = (int)verts[k].mapx;
int mapky = (int)verts[k].mapy;
Graphics gfx = CreateGraphics();
Pen myPen = new Pen(Color.DarkOliveGreen, 3);
gfx.DrawLine(myPen, mapny, mapnx, mapky, mapkx);
}

最佳答案

您需要在调用的方法中显式处理 Graphics 对象。您可以通过两种不同的方式执行此操作。

  1. 在您的方法末尾显式调用 gfx.Dispose()
  2. 将访问gfx的代码包装在using中,像这样:

    using (Graphics gfx = CreateGraphics())
    {
    // call gfx methods liek DrawLine()
    }

您可以在 CreateGraphics() 的 MSDN 文档中阅读更多信息方法。

关于c# - .NET 问题 在一台计算机上工作正常,在另一台计算机上出现堆栈溢出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2909786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com