比如:
while(true)
{Thread th = new Thread(xxx);
th.start(); }想做个监控,但是不停的循环创建一个对象,内存的占用幅度好大,在1-3M中不停的波动,求方法解决.
用过线程计时器,也是一样的结果.
while(true)
{Thread th = new Thread(xxx);
th.start(); }想做个监控,但是不停的循环创建一个对象,内存的占用幅度好大,在1-3M中不停的波动,求方法解决.
用过线程计时器,也是一样的结果.
解决方案 »
- C#中在使用Spilt()函数时应该包含什么using集?
- 我想知道C#如何开发外挂(辅助程序)
- 有关流、文件操作
- 能否给个用线程控制循环的例子(实在是没分了包涵下)
- 我有一道算法题,谁能准确得出答案的给分
- IE Webcontrol 中treeview 控件在98系统中不能显示树形结构
- C# winform POST登录网页,返回正在进入
- c#2005用代码设置打印
- Clipboard 能放对象吗?好象Microsoft自己的例子都不能跑?大家帮我Run 一Run看。
- string format 对齐问题
- 数字字符串如何执行加减操作
- 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)
{
//你要做的东西
}