1

我有一个从 postgressql 数据库返回DataSet的方法。

    ds = stats.loadStats();

我需要随机更新 DataSet,每 3 分钟一次(例如)。

                Random r = new Random();
                var rendom_number = r.Next(0, 179);//3 minutes = 3*60 = 180 sec.
                if (rendom_number == 1)
                {
                   //reload Dataset here
                }

一旦触发事件 - 我需要处理旧数据集并使用新数据集对其进行更新,而不会导致过载、内存泄漏或其他问题。你是如何用 C# 做到这一点的?

我知道三种方法,但哪种方法最好?

  1. 方法

            ds.Clear(); //disposing of old DataSet
            ds = stats.loadStats(); //loading new
    
  2. 方法

            ds.Dispose(); //disposing of old DataSet
            ds = stats.loadStats(); //loading new
    
  3. 方法

            ds = null; //disposing of old DataSet
            ds = stats.loadStats(); //loading new
    
  4. 你的方法是什么?(或最佳选择)

4

1 回答 1

0

所有你需要的是

//ds.Clear(); 
//ds = null; 
ds.Dispose();  // not really needed but out of general principle
ds = stats.loadStats();  // gets a new instance

剩下的留给垃圾收集器。

于 2012-04-18T16:16:57.343 回答