比如:
while(true)
{Thread th = new Thread(xxx);
th.start(); }想做个监控,但是不停的循环创建一个对象,内存的占用幅度好大,在1-3M中不停的波动,求方法解决.
用过线程计时器,也是一样的结果.
while(true)
{Thread th = new Thread(xxx);
th.start(); }想做个监控,但是不停的循环创建一个对象,内存的占用幅度好大,在1-3M中不停的波动,求方法解决.
用过线程计时器,也是一样的结果.
解决方案 »
- 定时器不执行
- 关于滚动弹出窗口的问题
- 有关C#编程题!紧急需要,求解!麻烦了!
- 新手求教 WINForm 图片加水印
- 页面传Date,变成UTC日期格式,如何处理???在线等~~~~~~~~~~~
- 咱们论坛有没有研究过 CLR调试器的高手? 了解ICorDebug的朋友来帮忙看看,想做一个仿VS IDE的代码调试器
- DataSet 填充表
- c#.net2003与2005的区别 有经验的朋友进来看下
- 怎么获取datagrid选中多行的行数呀
- listBox的难题(求助)(100分求助)
- 数字字符串如何执行加减操作
- wcf客户端报错--Insufficient winsock resources available to complete socket connection
{
Thread.Sleep(100);
Thread th = new Thread(xxx);
th.IsBackground = true;
th.start(); }
然后在while 里面 先判断 异步对象运行状态 如果正在执行 休眠一段时间 跳过
如果执行完 再启动它 这么监控
BackgroundWorker _Worker = new BackgroundWorker(); private void RunWorker()
{
_Worker.DoWork += new DoWorkEventHandler(_Worker_DoWork);
//无限循环
while (true)
{
if (!_Worker.IsBusy)
{
_Worker.RunWorkerAsync();
}
}
} void _Worker_DoWork(object sender, DoWorkEventArgs e)
{
//你要做的东西
}
BackgroundWorker _Worker = new BackgroundWorker(); private void RunWorker()
{
_Worker.DoWork += new DoWorkEventHandler(_Worker_DoWork);
//无限循环
while (true)
{
if (!_Worker.IsBusy)
{
_Worker.RunWorkerAsync();
}
else
{
//休眠一段时间,不用那么频繁的操作
Thread.Sleep(1000);
}
}
} void _Worker_DoWork(object sender, DoWorkEventArgs e)
{
//你要做的东西
}