【发布时间】:2014-06-19 12:12:50
【问题描述】:
如果以下设计不利于管理堆/内存以及从设计模式的角度来看,请告诉我。
在这里,我在 Windows 服务上使用 C#Timers.Timer,其中时间滴答事件在多个线程上触发。
这里我的主要观点是关于堆内存消耗,因为在微秒内在不同的线程中创建了大量对象,而且我们不能保证 GC 何时会收集它们。所以这可能对应用程序的堆和性能问题有害。我正确吗?
timer_tick()
{
Test objTst=null;
try
{
objTst=new Test();
objTst.Process();
}
catch(execption e){}
finally
{
objTst =null;
}
}
【问题讨论】:
-
这是一个副本,但我现在找不到这个副本。不,您不需要将内容设置为
null。 -
虽然这部分是重复的,但它(就不良做法而言)不仅仅是不必要地设置为 null...
标签: c# timer windows-services heap-memory