ILove's Dev Home -
休息的时候不要忘记 别人还在奔跑
博客园
::
首页
::
新随笔
::
联系
:: ::
管理
::
20 随笔 :: 5 文章 :: 237 评论 :: 5 引用
04 2008 档案
虚函数的调用机制
摘要: 前几天在看《.Net框架程序设计》的时候,好像记得书中有提到说每个对象在创建后都会有一个字段保存了一个内存地址,这个内存地址指向对象实际类型的方法表,其中维护了类型每个方法的签名以及他们的入口地址的对应关系。每次调用方法的时候会到这个表中去查找方法入口地址。而根据我之前对于程序的了解,只有虚函数才会需要保存在这个“函数指针表”中,而非虚方法因为在编译时就已经知道了函数入口地址的相对偏移量(因为确切的知道将要调用的是哪个类的哪个方法),所以最终生成的cpu call指令中可以直接得到函数入口地址(模块加载时的基地址加上偏移量就是实际的入口地址)。而虚方法在编译时无法知道具体调用的是哪个方法,所以才会用这个“虚函数指针表”来使系统能够在运行时获得要调用的是哪个方法。
阅读全文
posted @
2008-04-24 01:11
没有昵称 阅读(1874) |
评论 (21)
编辑
.Net,你为什么会慢
摘要: 自打使用.Net以来,他给我的印象就一直是:慢。不过这几天看了一下.Net程序运行时的原理,才明白了我们平时的.Net程序是为什么慢的,也明白了在某些情况下其实.Net程序运行起来也不比非托管程序慢。
阅读全文
posted @
2008-04-17 01:35
没有昵称 阅读(4309) |
评论 (75)
编辑
PE文件结构 zz
posted @
2008-04-15 01:32
没有昵称 阅读(369) |
评论 (0)
编辑
理解 Thread.Sleep 函数
摘要: 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:
1、假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒?
2、某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么?
阅读全文
posted @
2008-04-07 14:45
没有昵称 阅读(2809) |
评论 (59)
编辑
Refactoring to, towards, and away from pattern
摘要: Refactoring to, towards, and away from pattern
1、设计过度和设计不足同样不可取
2、设计欠账
3、模式的真正价值只是一种思想,而不是一个框图。
4、模式是否会使得代码更加复杂
阅读全文
posted @
2008-04-07 01:15
没有昵称 阅读(408) |
评论 (0)
编辑
在.Net中使用异步(二)
摘要: 在上一篇文章中,我们探讨了使用Thread类实现异步的方法。
在整个过程中,可以发现Delegate这个东西出现了很多次。而仔细研究Delegate,我们发现每一个Delegate类型都自动产生了Invoke、BeginInvoke、EndInvoke等方法。而BeginInvoke、EndInvoke这两个方法,我们马上就可以猜到这是用来实现异步的~~
那么我们现在就看一下怎样使用委托来实现异步。
阅读全文
posted @
2008-04-06 20:09
没有昵称 阅读(2505) |
评论 (15)
编辑
A Taste of AOP from Solving Problems with OOP and Design Patterns (Part III) zz
摘要: A Taste of AOP from Solving Problems with OOP and Design Patterns (Part III) zz
阅读全文
posted @
2008-04-06 18:10
没有昵称 阅读(89) |
评论 (0)
编辑
A Taste of AOP from Solving Problems with OOP and Design Patterns (Part II) zz
摘要: A Taste of AOP from Solving Problems with OOP and Design Patterns (Part II) zz
阅读全文
posted @
2008-04-06 18:09
没有昵称 阅读(63) |
评论 (0)
编辑
A Taste of AOP from Solving Problems with OOP and Design Patterns (Part I) zz
摘要: A Taste of AOP from Solving Problems with OOP and Design Patterns (Part I)
阅读全文
posted @
2008-04-06 18:07
没有昵称 阅读(95) |
评论 (0)
编辑
利用消息机制实现.NET AOP(面向方面编程)--通过RealProxy实现 zz
摘要: 通过RealProxy是最简单的方法,缺点是不能同时加入多个代理,否则会抛异常。
实现步骤:
1、实现RealProxy的继承类
2、实现应用上述实现的RealProxy类的ProxyAttribute
3、把上述实现的Attribute应用到ContextBoundObject实例上
阅读全文
posted @
2008-04-06 18:04
没有昵称 阅读(216) |
评论 (2)
编辑
javascript小技巧 && JavaScript[对象.属性]集锦 [zz]
posted @
2008-04-06 18:02
没有昵称 阅读(182) |
评论 (0)
编辑
关于枚举的种种(zz)
posted @
2008-04-06 17:59
没有昵称 阅读(150) |
评论 (4)
编辑
在.Net中使用异步(一)
摘要: 在写程序的过程中,我们可能会需要对某些功能实现异步操作,比如记录调用日志等。
提到异步,我们最容易想到的就是多线程:我们可以启动另外一个线程,把一部分工作交给另外一个线程去执行,而当前线程继续去做一些更加急迫的事情。这里的“把一部分工作交给另外一个线程取执行”,是通过将要执行的函数的函数入口地址告诉另外一个线程来实现的,当新的线程有了函数的入口地址,就可以调用该函数。
我们先来看一下怎样使用C#中的Thread类来实现异步。
阅读全文
posted @
2008-04-06 17:52
没有昵称 阅读(2756) |
评论 (18)
编辑
<
2008年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
最新评论
我的标签
留言簿
给我留言
查看留言
我参与的团队
开源CLI核心探索团队(0/96)
随笔分类
.Net Framework(10)
(rss)
CSS, Java Script, Html(1)
(rss)
Design Patterns(1)
(rss)
Develop Tools
(rss)
Operating System Principles(3)
(rss)
Remoting, WebService(4)
(rss)
读书笔记(2)
(rss)
随笔档案
2008年4月 (13)
积分与排名
积分 - 24987
排名 - 1726
最新随笔
1. 虚函数的调用机制
2. .Net,你为什么会慢
3. PE文件结构 zz
4. 理解 Thread.Sleep 函数
5. Refactoring to, towards, and away from pattern
6. 在.Net中使用异步(二)
7. A Taste of AOP from Solving Problems with OOP and Design Patterns (Part III) zz
8. A Taste of AOP from Solving Problems with OOP and Design Patterns (Part II) zz
9. A Taste of AOP from Solving Problems with OOP and Design Patterns (Part I) zz
10. 利用消息机制实现.NET AOP(面向方面编程)--通过RealProxy实现 zz
11. javascript小技巧 && JavaScript[对象.属性]集锦 [zz]
12. 关于枚举的种种(zz)
13. 在.Net中使用异步(一)
最新评论
1. re: 理解 Thread.Sleep 函数
HOHO,文笔很好啊,一下就记住了文章的知识点。
--畅想者
Powered by:
博客园
Copyright © 没有昵称