惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Check Point Blog
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
IT之家
IT之家
月光博客
月光博客
U
Unit 42
K
Kaspersky official blog
T
Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
云风的 BLOG
云风的 BLOG
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
Engineering at Meta
Engineering at Meta
Recorded Future
Recorded Future
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security @ Cisco Blogs
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Security Archives - TechRepublic
Security Archives - TechRepublic
Webroot Blog
Webroot Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Schneier on Security
S
Secure Thoughts
The Register - Security
The Register - Security
B
Blog RSS Feed
The Last Watchdog
The Last Watchdog
P
Palo Alto Networks Blog
爱范儿
爱范儿
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
C
Cisco Blogs
Spread Privacy
Spread Privacy
F
Full Disclosure
博客园 - 聂微东
T
The Blog of Author Tim Ferriss

博客园 - 楚潇

有关sqlserver的锁 基于dotnet2.0的联通sgip1.2协议二级网关源码 .net winform下TreeNode在没有子结点时也显示+号的解决办法 在vs2005中用gridview显示表中的image字段 - 楚潇 - 博客园 谁没在变! vs2k5 中asp.net "Web Site Administration Tool "使用中遇到的问题 - 楚潇 美达飞凡16X DVD起死回生记 寄语八十年代的新一代 小胜凭智, 大胜靠德 再读<心航> visual C# 2005 express beta2读配置文件的问题(ms的bug?) C#中判断socket是否已断开的方法 将对象转为byte[] 摘自古龙的句子 端午节到了 C#中的字符串格式化 .net开发手机短信 怎样才能提高.net的水平呢? Reflaction很嚣张的功能
《windows核心编程》
楚潇 · 2005-10-06 · via 博客园 - 楚潇

        这段时间把《windows核心编程》给读完了,感觉很爽,不愧为一本经典书籍呀。
        读完这本书,我终于把原来不太明白的地方搞清楚了,感觉对windows又有了深一步的了解。我在这里要记录一下我一直以来写的错误代码。
 
         1、Critical Section 
          原来一直没有搞清楚Critical Section 这个东西的真正含义,我以往在线程中要保护资源经常这样写:
          void ThreadFunction(PVOID pvParam)
          {
                  //创建一个Critical Section对象
                  需要保护的资源
                  //释放该Critical Section对象
           }
           原来Critical Section Object是必须用全局变量的(即指所有线程可见), 而且这里的所有线程都是君子:即所有线程都用该Critial Section Object来访问资源,倘若有一个线程不用这个Critial Section Object去访问资源的话,后果很严重哦,:)
           看看俺原来的代码,似乎是每次访问资源的时候都创建一个Critical Section Object,很明显这样根据保护不了资源。

          2、相关窗口的API
          一直以为SetFocus()、 GetActiveWindow()、 SetActiveWindow()等api是全局的,现在才明白她们只是针对当前的线程。如果当前线程所创建的窗口没有激活的窗口,GetActiveWindow()就会返回NULL。现在也终于明白GetForegroundWindow() 和 GetActiveWindow()的区别,原来在一个Button按钮写下事件来获取这两个函数所返回的Handle, 结果返回的Handle都相等,于是俺就错误地理解了这两个api。hoho~~~, 学技术是不能马虎的。
          现在也明白了AttachTreadInput()这个api应该在什么情况下使用了,:)

          3、其它
          一直没有留意WaitForSingleObject的“副加作用”,也总是按照MSDN上的示例照抄,却不明白所以然。现在总算搞清楚了,WaitForSingleObject会将相应的对象置为“未通知”状态。

-----------------------------------------------------------------------------------------------------------------------------
         在读了的这么多技术书籍当中,这两本书是最为值得收藏:

          《编程精粹 - Microsft编写优质无错C程序秘决》


          《windows核心编程》

          等俺有了钱,一定要把《windows核心编程》的E文版买回来收藏,有空的时候看看也是一种享受呀,^_^