我的一个C#程序,需要刚开始分配内存来存放数据我的程序是使用定时器每隔一秒种就创建一个对象,我这里创建了stringbuilder对象,new stringbuiler(100);可是每当查看任务管理器里面程序所占的内存到了11700K 的时候程序就停止不动了,大概就是创建了30个对象把,
如果把每个stringbuiler对象定义的大点,创建的对象会更少,但是看任务管理器里面程序所占的内存还是到了11700K 就会停住不是何故,刚用C#,不理解 ,请达人指教其中缘由。
如果把每个stringbuiler对象定义的大点,创建的对象会更少,但是看任务管理器里面程序所占的内存还是到了11700K 就会停住不是何故,刚用C#,不理解 ,请达人指教其中缘由。
解决方案 »
- 检测是否连接投影仪
- c# datagridview同步修改更新问题
- 如何分割出字符串中的所有单个字符
- d3d中font字体类构造问题
- 类库项目包含Web服务 无法调用
- 请大神帮忙看一下access数据库的插入语句有什么问题?
- 方法“Microsoft.Office.Interop.Excel._Worksheet.Activate()”和非方法“Microsoft.Office.Interop.Excel.DocEvents_Event.Activate”之间存在二义性。
- 安装一个无线路由器能带十几台电脑上网,但网络收费是怎样的?
- 如何在已绑定的combobox后面追加一条新记录
- 非正常退出
- 急·#####如何让网页自动提交——@@@@@@@@来者有分###
- (高分求救)如何让代理对话框不显示
using System.Text;
using System.Threading;
using System.Collections;namespace MyApp
{
/// <summary>
/// 应用程序类。
/// </summary>
public class Program
{
static void Main()
{
Console.WriteLine("Press Enter to terminate...");
Worker aWorker = new Worker();
aWorker.Start();
Console.ReadLine();
}
} /// <summary>
/// 工作者类。
/// </summary>
public class Worker
{
public Worker()
{
} int _objectCount = 0;
int _doCount = 1; ArrayList _list = new ArrayList(); public void Do(object obj)
{
Console.WriteLine(_doCount.ToString() + ",At [" + DateTime.Now.Ticks.ToString() + "] 采集到数据。");
for(int i = 0; i < 3; i++)
{
Console.WriteLine("\t\t第 " + (_objectCount + 1).ToString() + " 个对象准备创建。");
StringBuilder sb = new StringBuilder(10000);
_list.Add(sb);
++ _objectCount;
Console.WriteLine("\t\t第 " + _objectCount.ToString() + " 个对象创建成功。");
} Console.WriteLine(_doCount.ToString() + ",结束。\n");
_doCount ++;
} public void Start()
{
#region 不使用定时器
// while(true)
// {
// Do(null);
// }
#endregion #region 启用定时器
TimerCallback callback = new TimerCallback(Do);
Timer timer = new Timer(callback, null, 0, 500);
#endregion
} }
}
是timer被系统当场垃圾回收了
因为到后面就没有它的引用了 谢谢各位