比如:
while(true)
{Thread th = new Thread(xxx);
th.start(); }想做个监控,但是不停的循环创建一个对象,内存的占用幅度好大,在1-3M中不停的波动,求方法解决.
用过线程计时器,也是一样的结果.

解决方案 »

  1.   

    while(true)
    {
    Thread.Sleep(100);
    Thread th = new Thread(xxx);
    th.IsBackground = true;
    th.start(); }
      

  2.   

    while 之外 声明一个 异步对象 backgroundworker 
    然后在while 里面 先判断 异步对象运行状态 如果正在执行 休眠一段时间 跳过
    如果执行完 再启动它 这么监控  
      

  3.   


      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)
            {
               //你要做的东西
            }
      

  4.   


       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)
            {
               //你要做的东西
            }