我創建了一個簡單的類來過濾掉數據流中的數據。問題是,如果我使用多個ValueFilter對象,它們都使用相同的隊列。我希望在那裏爲每個ValueFilter對象分別設置一個隊列。我在我的主程序中聲明瞭ValueFilter,如下所示:ValueFilter filter = new ValueFilter();
我應該使用某種構造函數嗎?每次創建對象時創建新的隊列
using System;
using Microsoft.SPOT;
using System.Collections;
namespace foo
{
class ValueFilter
{
private const int FILTER_QUEUE_SIZE = 10;
private static int sum = 0;
private static Queue queue = new Queue();
public int FilterValue(int value)
{
if (queue.Count >= FILTER_QUEUE_SIZE)
{
if (System.Math.Abs((int)(value - sum/queue.Count)) < 3000)
{
queue.Enqueue(value);
sum += (int)(value - (int)queue.Dequeue());
}
}
else
{
queue.Enqueue(value);
sum += (int)value;
}
return sum/queue.Count;
}
}
就是這樣。謝謝 – Richard 2011-06-08 18:26:48