问题列表 - 第12684页

c#GDI +,在循环中创建LinearGradientBrush(内存泄漏)

今天我遇到了一点困境.我创建了一个使用GDI +在表单上绘制的应用程序.绘图由计时器每秒触发.draw方法使用for循环遍历对象集合,如果它们处于某种状态,则绘制它们.

我想使用LinearGradientBrush绘制它们只是因为它看起来比简单的刷子好得多.看看下面的内容

            //minutes
        foreach (Led l in MinuteGrid.Leds)
        {
            LinearGradientBrush b = new LinearGradientBrush
                (l.LedRectangle, Color.GreenYellow, Color.Green, 110);

            if (l.IsLit)
                g.FillRectangle(b, l.LedRectangle);

            b.Dispose();
        }
Run Code Online (Sandbox Code Playgroud)

我正在为循环的每次迭代创建一个新的LinearGradientBrush(这让我困扰),但那是因为我必须这样做.我无法在循环外创建一个,因为它的构造函数集要求我设置只在循环中知道的参数.

我发现在LinearGradientBrush对象上使用dispose方法并不是那么可靠.如果我运行我的应用程序并在任务管理器中查看它,它的喷出内存.当我然后添加b = null行似乎有很大帮助,如下所示

            foreach (Led l in MinuteGrid.Leds)
        {
            LinearGradientBrush b = new LinearGradientBrush
                (l.LedRectangle, Color.GreenYellow, Color.Green, 110);

            if (l.IsLit)
                g.FillRectangle(b, l.LedRectangle);

            if (b != null)
            {
                b.Dispose();
                b = null;
            }
        }
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有更好的方法来使用LinearGradientBrushes?或者是否有更好的解决方案?

非常感谢

c# gdi+

1
推荐指数
1
解决办法
1738
查看次数

DDD存储库对其他存储库的意识

通常可以接受一个存储库可以访问另一个存储库吗?特别是在这种情况下,我有一个聚合根,它使用另一个聚合根来确定要添加的实体.它属于Item/Item Type关系的行.项类型是聚合根的原因是它们可以在任何单个项的范围之外的管理工具中单独维护.

如果它确实重要,我只是通过存储库工厂实现创建我的存储库实例,所以我不是通过具体的类名直接创建它.聚合器在任何时候都不知道存储库.

编辑 - 更多信息:

具体实现是我们可以将图像附加到文档.我们不仅可以管理文档上的图像,而且还有不同类型的图像(类型被定义为如何实现,例如,与扩展相对).文档聚合是系统中使用这些图像的少数几种其他对象之一,并且它们并非都使用相同的类型.虽然我们在域服务中附加规则,但更具体地说,这是针对构建文档聚合的.在构建聚合时,我们有五个特定类型的图像,以及另外两个类型的图像.我们单独提取它们是因为它们存储在聚合中的单独列表中.验证不是问题,而是限制在组装文档时评估的图像类型.

language-agnostic architecture domain-driven-design ddd-repositories

7
推荐指数
1
解决办法
1338
查看次数

在归一化浮点数f之前(之前)的下一个归一化浮点数是多少?

给定归一化的浮点数f,f 之后/之前的下一个归一化浮点数是多少.

随着比特twiddling,提取尾数和指数我有:

next_normalized(double&){
      if mantissa is not all ones
          maximally denormalize while maintaining equality 
          add 1 to mantissa
          normalize
      else 
          check overflow
          set mantissa to 1  
          add (mantissa size in bits) to exponent.
      endif
 }
Run Code Online (Sandbox Code Playgroud)

但是,这可以通过浮点运算来完成吗?

std::numeric_limits<double>::epsilon() 
Run Code Online (Sandbox Code Playgroud)

只是1的"邻域"中的误差差异 - 例如:

normalized(d+=std::numeric_limits<double>::epsilon()) = d for d large
Run Code Online (Sandbox Code Playgroud)

它看起来更像错误率而不是错误差异,因此我天真的直觉就是

(1.+std::numeric_limits<double>::epsilon())*f //should be the next.
Run Code Online (Sandbox Code Playgroud)

(1.-std::numeric_limits<double>::epsilon())*f //should be the previous.
Run Code Online (Sandbox Code Playgroud)

特别是我有3个问题,任何人都做了以下任何一个(对于IEEE754):

1)对这个问题做了错误分析?

2)证明(或可证明)对于任何标准化的双d

    (1.+std::numeric_limits<double>::epsilon())*d != d ?
Run Code Online (Sandbox Code Playgroud)

3)证明对于任何标准化的双数d,不存在双f

    d < f < (1.+std::numeric_limits<double>::epsilon())*d ? 
Run Code Online (Sandbox Code Playgroud)

floating-point

6
推荐指数
2
解决办法
2022
查看次数

确定是否启用了 ASP.NET 会话

在 C# 中进行布尔测试以确定是否启用 ASP.NET 会话的最佳方法是什么?我不想使用 try-catch 块并且 Sessions != null 抛出异常。

问候。

c# asp.net session

4
推荐指数
2
解决办法
2635
查看次数

IE模拟器 - 在安装了IE8的操作系统中模拟IE 6

可能重复:
在同一台机器上运行IE6,IE7和IE8
需要一个好的IE6,7,8独立.

嗨guyz,

我的桌面上有IE 8.但我需要在IE6和其他几个版本的IE上测试我的asp.net网站.你能告诉我是否有办法模拟IE 6而不实际安装它(我没有安装以前版本的IE的权限).

internet-explorer emulation

13
推荐指数
2
解决办法
6万
查看次数

PHP中的XSS过滤功能

有谁知道有一个很好的功能来过滤表格中的通用输入?Zend_Filter_input似乎需要事先知道输入的内容,我担心使用像HTML Purifier这样的东西会对性能产生很大的影响.

怎么样的:http://snipplr.com/view/1848/php--sacar-xss/

非常感谢任何意见.

php xss filter

40
推荐指数
3
解决办法
10万
查看次数

如何在jQuery中创建适当的闭包?

这是我的代码示例:

var bar = function() {

  this.baz = function() {
    this.input = $('.input');
    this.input.bind("keydown keyup focus blur change", this.foo);
  }

  this.foo = function(event){
    console.log(this);
  }

}
Run Code Online (Sandbox Code Playgroud)

点击我的输入input显然是在控制台中.我怎样才能获得barthis呢?

javascript jquery closures

3
推荐指数
1
解决办法
2088
查看次数

在Python中继承string.Template的示例?

我没能找到一个在Python中继承string.Template的好例子,尽管我在文档中看到过多次引用.

网上有这方面的例子吗?

我想将$更改为不同的字符,并可能更改标识符的正则表达式.

python stringtemplate

15
推荐指数
1
解决办法
4394
查看次数

字典与对象 - 哪个更有效,为什么?

在内存使用和CPU消耗方面,Python的效率更高 - 词典还是对象?

背景: 我必须将大量数据加载到Python中.我创建了一个只是一个字段容器的对象.创建4M实例并将它们放入字典大约需要10分钟和大约6GB的内存.字典准备好后,访问它是一眨眼.

示例: 为了检查性能,我编写了两个执行相同操作的简单程序 - 一个是使用对象,另一个是字典:

对象(执行时间~18秒):

class Obj(object):
  def __init__(self, i):
    self.i = i
    self.l = []
all = {}
for i in range(1000000):
  all[i] = Obj(i)
Run Code Online (Sandbox Code Playgroud)

字典(执行时间~12秒):

all = {}
for i in range(1000000):
  o = {}
  o['i'] = i
  o['l'] = []
  all[i] = o
Run Code Online (Sandbox Code Playgroud)

问题: 我做错了什么或字典比对象更快?如果确实字典表现更好,有人可以解释为什么吗?

python performance dictionary object

118
推荐指数
4
解决办法
4万
查看次数

用于编写javascript对象的最干净的格式

编写javascript对象的最简洁格式是什么?

目前我用以下格式写我的

if (Namespace1 == null) var Namespace1 = {};
if (Namespace1.NameSpace2 == null) Namespace1.NameSpace2 = {};

Namespace1.NameSpace2.Class1 = function(param1,param2){
     // define private instance variables and their getters and setters
     var privateParam = param1;
     this.getPrivateParam = function() {return privateParam;}
     this.publicParam1 = param2;
}

Namespace1.Namespace2.Class1.prototype = {
     publicParam1:null,
     publicFunction1:function() {/* Function body*/}
}
Run Code Online (Sandbox Code Playgroud)

这种格式现在运行良好,因为YUI文档软件能够解析它,评论和回馈良好的文档.但它没有提供的是在命名空间中声明静态全局方法的简洁方法.我也想知道是否有更简洁的方法来声明私有变量.

我的问题是,有没有人有一个更清晰的方法来定义javascript对象,如果是这样,为什么你的方法更好?

谢谢!

javascript

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