快乐的生活……

最新评论

共2页: 1 2 下一页 
Re:.NET Threading Model(STA and MTA) EagleFish(邢瑜琨) 2010-02-08 14:53  
总结的言简意赅,不错!
开卷有益
学习了!
re: .NET Threading Model(STA and MTA) 坤坤 2008-03-26 11:41  
MTA 和 STA 在COM 里的解释和你们的理解有点出入吧 。他是一种隐藏具体语言和操作系统类型,进行多线程操作的模型?所谓STA是指该APARTMENT是一个单线程访问的模型,里面的对象只能被一个线程访问,要共享必须在用列集,而MTA里的对象是可多线程访问的,所以不需要你们说的隐藏窗体,那个东西是单线程模型用来响应消息才需要使用的连接点技术吧。
以上只是我个人的理解。
thanks,第一次执行修复之前不用删除,我的错误修复了,谢谢LZ
re: 将word中的图片保存到本地 tianjj 2007-07-04 11:10  
正是所需,thanks
上面的测试有一个问题,忘记保证 两个查询条件返回记录记相同呢。

加入 PrimaryKey 后:
ROWS COUNT :10w


Run the 1 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
4085.8752 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
330.4752 ms


Run the 2 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
250.36 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
340.4896 ms


Run the 3 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
250.36 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
330.4752 ms


Run the 4 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
260.3744 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
410.5904 ms


Run the 5 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
450.648 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
410.5904 ms


Run the 6 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
270.3888 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
350.504 ms


Run the 7 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
310.4464 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
370.5328 ms


Run the 8 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
320.4608 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
440.6336 ms


Run the 9 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
320.4608 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
330.4752 ms


Run the 10 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 AND (content='200')"):
0 ms
mDataTable.DefaultView.RowFilter = "index = 200":
280.4032 ms
mDataTable.DefaultView.RowFilter = "index = 200 AND (content='200')":
380.5472 ms
上面的测试是没有设置 PrimaryKey 的测试结果。
嘿嘿,不说了,看测试结果:

ROWS COUNT :10w


Run the 1 times :
mDataTable.Select("index = 200"):
570.8208 ms
mDataTable.Select("index = 200 OR (content='200')"):
510.7344 ms
mDataTable.DefaultView.RowFilter = "index = 200":
4206.048 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
1011.4544 ms


Run the 2 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
570.8208 ms
mDataTable.DefaultView.RowFilter = "index = 200":
470.6768 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
1021.4688 ms


Run the 3 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
630.9072 ms
mDataTable.DefaultView.RowFilter = "index = 200":
380.5472 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
971.3968 ms


Run the 4 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
590.8496 ms
mDataTable.DefaultView.RowFilter = "index = 200":
410.5904 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
961.3824 ms


Run the 5 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
570.8208 ms
mDataTable.DefaultView.RowFilter = "index = 200":
410.5904 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
951.368 ms


Run the 6 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
600.864 ms
mDataTable.DefaultView.RowFilter = "index = 200":
400.576 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
911.3104 ms


Run the 7 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
570.8208 ms
mDataTable.DefaultView.RowFilter = "index = 200":
390.5616 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
941.3536 ms


Run the 8 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
550.792 ms
mDataTable.DefaultView.RowFilter = "index = 200":
390.5616 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
941.3536 ms


Run the 9 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
560.8064 ms
mDataTable.DefaultView.RowFilter = "index = 200":
390.5616 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
901.296 ms


Run the 10 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
560.8064 ms
mDataTable.DefaultView.RowFilter = "index = 200":
370.5328 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
911.3104 ms


Run the 11 times :
mDataTable.Select("index = 200"):
0 ms
mDataTable.Select("index = 200 OR (content='200')"):
530.7632 ms
mDataTable.DefaultView.RowFilter = "index = 200":
380.5472 ms
mDataTable.DefaultView.RowFilter = "index = 200 OR (content='200')":
891.2816 ms
re: Office Com AddIn 开发心得 wxy 2007-06-13 15:17  
推荐你一个专做office addin的地方
www.officeaddin.cn
re: [.net]正则表达式整理 quitgame 2007-05-03 21:13  
很久没来看大家的剥壳了,没想到你也都不怎么更新剥壳了。
最近生活的怎么样,北大明天的日子很滋润吧 :)
在VSS的目录data下没有找到backup文件,没有其他的解决办法吗?
re: .NET Threading Model(STA and MTA) 胡杨 2006-10-24 17:15  
MTA中应该是同样有内部隐藏的窗口类和消息队列的,不然怎么工作?
我赞成轻剑傲风的理解。
呵呵,强啊
非常感谢。看了你的文章,我已经可以让这种机制在c++下work了。
InitialMenuList();
里面写自己添加的按钮和菜单等内容,就是你自定义word的菜单和按钮的操作部分,例如在“标准”工具栏上添加一个按钮等。
是我自己写的方法,不是对系统方法的调用。
InitialMenuList();
这个里面要做什么事情?如何初始化菜单和按钮?
我说的够明白了吧,你就是在init事件里面new textbox()就可以了,需要指定这些textbox的id即可。别的没什么了
是啊,写文章写一半.结果也不写出来. gy3z@163.com 把结果发我一份吧
re: [.net]正则表达式整理 goodspeed.cn 2006-08-01 22:52  
nice
其实楼上两位说的有一定道理,但是技术有两个方向,一个是系统架构,就是楼上说的大处着手,但还有一个是算法,万千程序,算法为王,当然发展方向不一样,关注的也一定不一样。
re: 招聘.NET高级软件工程师 诚聘Delphi开发人员(东莞) 2006-07-22 22:49  
诚聘Delphi开发人员(东莞)
招聘人数:3人 (全职)
工作地点:东莞


要求:
1、精通Delphi开发环境,具有两年以上Delphi开发经验
2、熟悉Socket编程、 对网络通讯有一定的了解
3、有独立开发的能力
4、有群发软件、网络广告工具等开发经验优先

有意者请联系QQ:48070559
现在有的只是猜测,我们不能凭空猜测就妄下结论
发生了这个事情不是一个人的责任
@t o m
http://itbbs.pconline.com.cn/topic.jsp?tid=3029451 这篇里面有

另外一个很流行的解释是 "你是恐怖分子和妓女的儿子"
re: 痛苦的胃镜检查 quitgame 2006-07-11 22:48  
嘿嘿 好玩
马特拉奇说了什么?
意大利夺冠,我很高兴
不过点球应该不是假摔吧
确实碰到了的
当时我就说,马特拉奇呀,你真是个炸弹。
没想到他跟着就把比分扳平了,狂笑,算是将功补过吧
re: Vieri离开国际米兰 琳儿 2006-06-23 22:50  
我永远爱着我的BOBO
我永远的英雄!
re: 快乐的奥秘 欣飘然 2006-05-06 08:52  
快乐每人都拥有但是却不能将他保留的很长久。然而那种热爱生活,热爱自己工作,朴实的人却显得那么快乐那样满足。
还记得是那次,同学因为别人给他照相而哭了。他就十分生气冲出学校,然而那个保卫说了一句“哭什么呢?人生几长,就这样哭完了多可惜啊,看看我们多好啊,不生气也不像你们说的那郁闷。我们每天就这样好好的工作,有时就掉掉鱼,自得其乐。~~
当时我真的不敢相信,这真的是一个保卫说的出来的吗?虽然没有任何的文学渲染,但是却是那么的合理。
虽然在现实生活不能事事如意,但是我们能有那位保卫那样对待人生的态度也不错了


re: 快乐的奥秘 欣飘然 2006-05-06 08:50  
快乐每人都拥有但是却不能将他保留的很长久。然而那种热爱生活,热爱自己工作,朴实的人却显得那么快乐那样满足。
还记得是那次,同学因为别人给他照相而哭了。他就十分生气冲出学校,然而那个保卫说了一句“哭什么呢?认识几长,就这样哭完了多可惜啊,看看我们多好啊,不生气也不像你们说的那郁闷。我们每天就这样好好的工作,有时就掉掉鱼,自得其乐。~~
当时我真的不敢相信,这真的是一个保卫说的出来的吗?虽然没有任何的文学渲染,但是却是那么的合理。
虽然在现实生活不能事事如意,但是我们能想那位保卫那样也不错了啊

我说的不清楚吗?请你详细说说你的问题?或者qq我,3990370
这个问题到底怎么能解决啊,急待各位高手支招,万分感谢!!!
RegisterStartupScript,在ISPostBack为TRUE里运行.是不是没有反应的呢??
re: 2005年年终总结 quitgame 2006-02-11 23:46  
好久没来了
老大对你真好 相比之下 对我就不怎么样了
现在 老大成天教我写文档 上次还说我写的文档没打算让人看懂 可是我觉得我已经很努力了 唉
re: 招聘.NET高级软件工程师 小诈 2006-01-14 22:42  
本来我们打算学历不限制的,可是老总不批(不让我们招)。所以,大部分的可能性是不行。很抱歉
re: 招聘.NET高级软件工程师 锋锋 2006-01-14 22:25  
工科大专非计算机或数学专业招吗?
(本人已使用.NET和J2EE各开发了几个项目.)
re: 招聘.NET高级软件工程师 小诈 2006-01-11 17:50  
公司的主要业务是通信网络方面的,主要是移动通信网络的设计、维护、优化等。软件部05年初刚成立,现在6个人,全公司有300多人吧。
待遇还可以,属于一般以上型。当然具体待遇要看能力。
re: 招聘.NET高级软件工程师 whale 2006-01-11 17:44  
我有兴趣,看了你公司的主页,发现你们主要是做通信网络的,不知道软件部门在你们来说有多大的比重。
re: 招聘.NET高级软件工程师 tsoukw 2006-01-11 17:42  
不知待遇如何?
re: 招聘.NET高级软件工程师 小诈 2006-01-10 14:39  
其实只要有能力,不必完全符合上面条件:)
re: DataTable.Select方法的性能问题 小诈 2005-12-30 10:39  
说的很对,提高自己的大局观、整体把握能力是最关键的,要不然始终会停滞在一个水平上很难提高
re: DataTable.Select方法的性能问题 chating 2005-12-30 03:04  
有时务求甚解的好..我以前也常常专注这些小方面,细节方面的..

现在认识有了很大的改观: 软件开发以用为本,拿来注意

当然咯. 研究深点,技术功底会过硬很多的....
re: DataTable.Select方法的性能问题 小诈 2005-12-28 14:06  
是的
re: DataTable.Select方法的性能问题 edobnet 2005-12-28 13:13  
设置关键字以后,会更快,就和数据库里设置关系字一样!
resolver.HostTable.PrimaryKey = new DataColumn[] {resolver.HostTable.Columns["RC_FIELD_NAME"]};
re: DataTable.Select方法的性能问题 Wu.Country@侠缘 2005-12-28 11:49  
有所悟。。。。。。。。。。
小试了一下,加上小改了一下:结果让我很吃惊:
long tick = System.DateTime.Now.Ticks;
DataRow[] rows = dt.Select("a=0 or (b='1' or b='3' or b='5' or b='6')");
System.Console.WriteLine((System.DateTime.Now.Ticks-tick));
tick = System.DateTime.Now.Ticks;
rows = dt.Select("a=0");
System.Console.WriteLine((System.DateTime.Now.Ticks-tick));
tick = System.DateTime.Now.Ticks;
dt.DefaultView.RowFilter = "a=0";
System.Console.WriteLine((System.DateTime.Now.Ticks-tick));
re: DataTable.Select方法的性能问题 風語者·疾風 2005-12-28 11:07  
这个道理和在SQL语句中SELECT用WHERE的排列顺序方式是一样的阿。
re: 2005-2006赛程 小诈 2005-12-28 10:40  
呵呵,从你的名字看来你也是铁杆了
re: DataTable.Select方法的性能问题 小诈 2005-12-28 10:39  
我需要保存的数据是多列,而且查找得到的结果会是多行的,所以ArrayList不适合
re: 2005-2006赛程 Internazional 2005-12-28 10:26  
赞!!不错的国米球迷阿。
re: DataTable.Select方法的性能问题 沐枫 2005-12-28 09:58  
非要用datatable吗?我怎么觉得用arraylist比较合适。
共2页: 1 2 下一页