我已经有了一个字典,它可以快速更新大约50个更新,每个(ms)可能更多信息。我正在使用以下内容总结字典的值。
DataPointDB.Sum(k => k.Value.Sum(v => v.Value));
然而,不时发生的事情是从319变为4445678329,我不明白,因为它不应该跳得那么高。
我想这更像是两个问题:
1)有没有更快的方法来总结字典中的值?
2)为什么这个数字会跳到一个疯狂的价值?
更多信息:在任何给定点插入数据库的最高值是12。
谢谢你们。
更新: 来自调用方法。
Task k = new Task(() => updateDB(x, name, y, time));
k.Start();
private void updateDB(double x, string name, int y, Timespan Time)
{
lock (locker)
{
Dictionary<string, int> tmp;
Dictionary<string, int> Dummy;
if(DatapointDB.ContainsKey(x))
{
DatapointDB.TryRemove(Key, out Dummy);
}
tmp = DataPointDB[x];
if(tmp.ContainsKey(name))
{
tmp[name] = depth;
}
else
{
tmp.Add(name, y);
}
Calc();
}
}
private void Calc()
{
lock (locker)
{
try
{
int x = DataPointDB.Sum(k => k.Value.Sum(v => v.Value));
NotifyRatioChanged("Current difference: " + "\t" + X.ToString());
}
catch (System.ArgumentException ex)
{
Console.WriteLine(ex.ToString());
throw;
}
}
}