c# - 声明一个一次性对象 : inside or outside a loop?

标签 c# performance idisposable

我应该在循环内还是循环外使用 using block ?有什么明显的性能差异吗? Graphics 对象的情况有什么不同吗?虽然第二种方法可能看起来更好,但 while 可能是一个长 block 并降低代码的可读性。

while (i < 100)
{
    using(Graphics g = Graphics.FromImage(bitmap)
    {
       g.DrawImage(...);
    }
}

对比

using(Graphics g = Graphics.FromImage(bitmap)
{
   while (i < 100) // a long while block
   {
       // I may use other functions such as g.DrawLine .. or g.DrawText ... 
       // Moreover while could be a long block
       g.DrawImage(...);

   }
}

最佳答案

除非您为每个循环使用不同的位图,否则您应该将 using block 放在它之外。

关于c# - 声明一个一次性对象 : inside or outside a loop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29681248/

相关文章:

c# - '文件已损坏,无法打开' OpenXML

C# vs C++ 循环性能测量

c# - 方法名称会被编译到 EXE 中吗?

c# - 静态类是否应该在 "static destructor"中处理其 IDisposable 变量?

c# - IDisposable 的显式实现

c# - 绑定(bind)到一列数据网格并应用样式

c# - C编程中的结构

.net - TcpClient 如何实现 IDisposable 而没有公共(public)的 Dispose 方法?

c# - 找不到类型或命名空间名称(存在引用)

javascript 性能 : global variable vs jquery's $. 数据()