winform 调用 Nhibernate 测试问题

gaodj9999 2015-02-16 10:18:12

问题:winform 调用nhibernate测试结果,为什么前几秒非常快,后边开始效率就明显下降了?

场景说明如下:
1、起了100个线程
for (int i = 0; i < 100;i++ ) /////30个线程也测试过
{
TestInsertThead instance1 = new TestInsertThead();
Thread t = new Thread(instance1.Go2);
t.Start();
Console.WriteLine("------------------>" + i);
}
2、每个线程中循环添加记录。
for (int i = 0; i < 10000; i++)
{
DataAccess da = new DataAccess();
Action doAction = delegate()
{
Userinfo newUser = new Userinfo();
//newUser.Id = Int32.Parse(textBoxX_id_userinfo.Text);
newUser.Imsi = "111111111111111";
newUser.Imei = "22222222222222";
da.Insert(newUser);
};
da.Transaction(doAction);//////这里代码实现如下面给出的。
Thread.Sleep(1);
}

===============Transaction======================
public void Transaction(Action action)
{
ITransaction transaction = session.BeginTransaction();
try
{
action();
transaction.Commit();
session.Close();
}
catch
{
transaction.Rollback();
session.Close();
throw;
}
}

===============session管理的机制说明======================
每次new一个DataAccess对象,都会factory.OpenSession();来打开一个session。
每次 da.Transaction都会关闭打开的这个session。
...全文
105 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
abutwang 2015-02-17
  • 打赏
  • 举报
回复
一般都是单例模式创建Session的吧 这么做你想得到什么结果,你的电脑一次可以运行几个session?才会开始排列么

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧