大家给推荐个适合c#的内存数据库啊 现在用List<数据类>操作的数据量大就不给力了经常崩溃。有没有能多机连接并且适合c#使用的内存数据库给推荐个啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己用HashTable、BinaryTree等数据结构去实现 如果想提高速度,可以用Dictionary泛型类,如果想查询灵活,可以用DataTable类,其实如果多机应用的话,还不如直接用sql server,用内存数据更麻烦也不会提高速度, 不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗? 那是你的代码健壮性差。几千条根本不可能导致list出错。 lz的“悲伤的老板”看来需要给lz再次加薪水啊。 老板不要把一个本来挺好的产品弄得“最后只有勉强就行一点小问题的售后服务、其他懂得开发的人都已经走了”这种境地。 ArrayList,这个集合体积能够自动扩大2倍,可以保证新的内存连续性,防止在短时间内,内存连续的搬迁,减少性能的损耗。所以ArrayList里存的数据,永远是连续的内存空间。 其实HashTable和字典Dictionary也不错,如果想了解之间的性能,最好到网上查询,根据自己的需要,选择适合的集合。 几千条数据量不算大吧,你需要从其它方面着手,比如对数据操作的行为,List<T> 没那么脆弱 代码问题,加异常捕获,代码走查,找到bug所在。我们项目中dictionary套list,几十万的数据频繁更新也没有造成程序崩溃 使用DataSet 或DataTable是最好不过了 新疆啊,能写代码的都没几个人。前天我还在弄Hyper-v Server 昨天又弄这代码。 前段时间处理的数据大概也是几天条,用的List<T>,还可以。 private static List<Topic> _list = new List<Topic>(); private readonly static object _lock = new object(); public static void Add(Topic topicInfo) { lock (_lock) { _list.Add(topicInfo); } } public static void Remove(Topic topicInfo) { lock (_lock) { _list.Remove(topicInfo); } }public static Topic Get() { Topic topicInfo; lock (_lock) { topicInfo = _list.Find(delegate(Topic n_topicInfo) { return n_topicInfo.ExpirationTime > DateTime.Now; }); if (topicInfo != null) { //移除 _list.Remove(topicInfo); return topicInfo; } else { return null; } } }这能有什么问题啊。。 目前2000左右数据个线程读写 以后能达到几十万啊 cyq.data 的文本数据库可以试试。 不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗?才几千条就会挂,太不可思意了。我们做游戏,那会数据都是几万条放到List里进行内存操作都不会挂。你是不是有用到多线程处理了。 Dictionary只是比List快,崩溃问题不一定能解决,不过Dictionary比List稳定的地方是,Dictionary是线程安全的,多线程不需要lock也可以使用Dictionary,不过前面几位说的很有道理,是你的程序写得不够严谨,几千条数据应该不算复杂,不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗? db4 for net能满足你的要求 DataTable 不错。里面提供了很多实用的方法。老虎传送门 不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗?千万别说Dictionary是线程安全的,这可纯粹是误导别人 for (int i = 0; i < 100; i++) { Dictionary<int, object> temp = new Dictionary<int, object>(); for (int j = 0; j < 10; j++) { int m = j; ThreadPool.QueueUserWorkItem((o) => { temp.Add(m, new object()); }); } }自己跑跑看看,放按钮的点击事件里,然后你多点几次看看。人家Dictionary可没说自己是线程安全的,ConcurrentDictionary才是线程安全的。 Dictionary不是线程安全的,对于你的多线程环境可以试着用ConcurrentDictionary类来储存。 C# SQL数据查询的问题 如何限制textbox 的字符,只能输入邮件或多个邮件,并用分号分开? richtextbox自动滚动问题 如何做数据查询的时候的等待 简单而头大的问题:WINFORM下输入法无法切换的问题 VB.Net、C#、j#、C++(托管代码)操作方法大PK 一般安装那个版本工程引用(References)中才能找到Illustrator的COM Library引用,知道呀请告知下,谢谢 listBox问题~~ C#调用存储过程的问题,求大神指教! 关于继承的菜鸟问题 请高手帮我看看这个服务器端 winform一次性在UI上加载大量数据,如何高效而流畅?
不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗?
新疆啊,能写代码的都没几个人。
前天我还在弄Hyper-v Server 昨天又弄这代码。
private static List<Topic> _list = new List<Topic>();
private readonly static object _lock = new object();
public static void Add(Topic topicInfo)
{
lock (_lock)
{
_list.Add(topicInfo);
}
}
public static void Remove(Topic topicInfo)
{
lock (_lock)
{
_list.Remove(topicInfo);
}
}public static Topic Get()
{
Topic topicInfo;
lock (_lock)
{
topicInfo = _list.Find(delegate(Topic n_topicInfo) { return n_topicInfo.ExpirationTime > DateTime.Now; });
if (topicInfo != null)
{
//移除
_list.Remove(topicInfo);
return topicInfo;
}
else
{
return null;
} }
}
这能有什么问题啊。。 目前2000左右数据个线程读写 以后能达到几十万啊
不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗?才几千条就会挂,太不可思意了。我们做游戏,那会数据都是几万条放到List里进行内存操作都不会挂。
你是不是有用到多线程处理了。
不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗?
不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗?
千万别说Dictionary是线程安全的,这可纯粹是误导别人
for (int i = 0; i < 100; i++)
{
Dictionary<int, object> temp = new Dictionary<int, object>(); for (int j = 0; j < 10; j++)
{
int m = j;
ThreadPool.QueueUserWorkItem((o) =>
{
temp.Add(m, new object());
});
}
}
自己跑跑看看,放按钮的点击事件里,然后你多点几次看看。人家Dictionary可没说自己是线程安全的,ConcurrentDictionary才是线程安全的。