ExecutionContext & SynchronizationContext
摘要:最近在研究.net4.5中的有关异步编程的新特性,从自己Google Reader 订阅的一些博客中接触到了两个很陌生的单词ExecutionContext和SynchronizationContext,于是仔细研究了一下,记录下来备忘。什么是ExecutionContext在许多系统中thread-local storage(TLS)线程本地存储记录了正在运行的当前环境或者上下文的一些信息,而在CLR中ExecutionContext做了类似的事情.在同步的世界中,所有的一切都发生在当前线程内,线程内有关的所有数据对其内所有代码可见,也同时被所有代码所操纵影响.也就是说假设有方法ABC在当前
阅读全文
posted @
2012-06-28 11:47
salomon
阅读(4656)
推荐(1) 编辑
WinRT 异步模型
摘要:开篇第一句:.net4.5中异步方法的实现远不如看起来的那么简单,编译器背后代替开发人员生成了大量的代码 做了好多事情使它看起来简单了,这些代码和过去实现异步操作时必须开发人员手动编写并维护的样板代码的数量类似。此外,编译器生成的代码会在 .NET Framework 中调用库代码,再次代替开发人员完成更多的工作。要获得正确的思维模式并使用这一模式做出合适的开发决策,重要的一点是了解编译器代替您生成了哪些内容。 .net4.5中定义了大量的异步方法***Async(例如Windows.System.Launcher.LaunchUriAsync() )这些方法的返回类型是IAsyncInfo或
阅读全文
posted @
2012-06-27 15:10
salomon
阅读(3395)
推荐(4) 编辑
学习日志2012-06-01~2012-06-19
摘要:最近几天学习计划:语言发展:http://channel9.msdn.com/blogs/adebruyn/techdays-2010-developer-keynote-by-anders-hejlsberghttp://channel9.msdn.com/Shows/Going+Deep/Anders-Hejlsberg-Herb-Sutter-Erik-Meijer-Brian-Beckman-Software-Composability-and-the-Future-ofhttp://www.cnblogs.com/yurenw/articles/861478.htmlhttp://w
阅读全文
posted @
2012-06-20 16:25
salomon
阅读(242)
推荐(0) 编辑
[翻译]深入理解Win32结构化异常处理(四)
摘要:如果你已经走了这么远,不把整个过程讲完对你有点不公平。我已经讲了当异常发生时操作系统是如何调用用户定义的回调函数的。我也讲了这些回调的内部情况,以及编译器是如何使用它们来实现__try和__except的。我甚至还讲了当某个异常没有被处理时所发生的情况以及系统所做的扫尾工作。剩下的就只有异常回调过程最初是从哪里开始的这个问题了。好吧,让我们深入系统内部来看一下结构化异常处理的开始阶段吧。 图十四是我为 KiUserExceptionDispatcher 函数和一些相关函数写的伪代码。这个函数在NTDLL.DLL中,它是异常处理执行的起点。为了绝对准确起见,我必须指出:刚才说的并不是绝对准确。.
阅读全文
posted @
2012-06-20 16:04
salomon
阅读(5285)
推荐(0) 编辑
[翻译]深入理解Win32结构化异常处理(三)
摘要:__except_handler3 and the scopetable我真的很希望让你看一看Visual C++运行时库源代码,让你自己好好研究一下__except_handler3函数,但是我办不到。因为 Microsoft并没有提供。在这里你就将就着看一下我为__except_handler3函数写的伪代码吧View Code int __except_handler3( struct _EXCEPTION_RECORD * pExceptionRecord, struct EXCEPTION_REGISTRATION * pRegistrationFrame, ...
阅读全文
posted @
2012-06-20 15:54
salomon
阅读(3398)
推荐(0) 编辑
[翻译]深入理解Win32结构化异常处理(二)
摘要:辛辛苦苦翻译了那么长,突然间发现网上早有这篇文章的翻译,贴过来吧。进一步深入 有了前面的最简单的例子,让我们再回过头去填补一些空白。虽然这个异常回调机制很棒,但它并不是一个完美的解决方案。对于稍微复杂一些的应用程序来说,仅用一个函数就能处理程序中任何地方都可能发生的异常是相当困难的。一个更实用的方案应该是有多个异常处理例程,每个例程针对程序的特定部分。不知你是否知道,实际上,操作系统提供的正是这个功能。 还记得系统用来查找异常回调函数的 EXCEPTION_REGISTRATION 结构吗?这个结构的第一个成员,称为 prev,前面我们曾把它忽略掉了。它实际上是一个指向另外一个 EXCEP..
阅读全文
posted @
2012-06-20 15:31
salomon
阅读(1306)
推荐(0) 编辑
与Python有关的 备忘
摘要:一个使用VS2010编辑Python的工具http://pytools.codeplex.com/使用python处理Excel表格的包http://pytools.codeplex.com/wikipage?title=PyvotHarry Pierson写的关于怎么为IronPython写deguger的文章http://devhawk.net/tag/debuggerreference:http://blogs.msdn.com/b/jmstall/archive/2011/09/20/python-tools-for-vs.aspxhttp://blogs.msdn.com/b/jms
阅读全文
posted @
2012-06-20 14:12
salomon
阅读(314)
推荐(0) 编辑
[翻译]深入理解Win32结构化异常处理(一)
摘要:在所有的Win32操作系统提供的功能里,最常用但是描述最不全的(underdocument)恐怕就是结构化异常处理了(structured exception handling (SEH))。当你想到Win32的结构化异常处理,你会想到_try, _finally,和 _except这些东西,你可以从任何一本Win32的书中找到SEH的很好的描述,即使是Win32SDK也有一个非常完备的关于_try, _finally,和 _except等的结构化异常处理的概述。既然有这么多关于关于SEH的书,为什么还说它描述不全呢,那是因为本质上讲Win32的结构化异常处理是操作系统提供的服务。所有你能找到
阅读全文
posted @
2012-06-20 13:42
salomon
阅读(2503)
推荐(1) 编辑
转载:微软UI自动化测试的技术演变
摘要:http://www.cnblogs.com/stbchina/archive/2010/01/25/Tech-Trend-of-Microsoft-UI-Automation-Testing-Part-1.htmlhttp://www.cnblogs.com/stbchina/archive/2010/01/28/Tech-Trend-of-Microsoft-UI-Automation-Testing-Part-Two.htmlWindows Hook:http://flhs-wdw.blog.sohu.com/131436129.htmlhttp://flhs-wdw.blog.sohu
阅读全文
posted @
2012-06-13 11:18
salomon
阅读(320)
推荐(0) 编辑
你真的懂C++吗
摘要:一年前写的东西,整理了一下,贴出来。 大学时期我眼中的C++和C语言一样一样的,因为课时不够老师讲C++的时候只讲了前半部分语法(相当于C语言学了两遍),关于面向对象部分的东西还没讲到课程就结束了,秉着混日子的学习态度后边的也没看。这也造成了我为期四五年的天真无知的认为我懂C++,直到近期翻看《STL源码剖析》《Boost文档库》才老脸一红有了自知之明。现在想来即使老师把后半部分面向对象讲了也不算真正的懂C++(那破教材应该扔了,而且大学C++的课程时长应该翻三倍),C++的水太深了。 站在程序员的角度来说,一门成熟的编程语言应该具备以下一些东西:简洁易懂标准统一的语法语义,功能齐全的类...
阅读全文
posted @
2012-06-08 16:18
salomon
阅读(5271)
推荐(6) 编辑
C++模板元编程 入门简介
摘要:最近一直在看STL和Boost,源码里边好多涉及到模板元编程技术,简单了解一下,备忘(Boost Python中的涉及模板元的部分重点关注一下)。范例引入// 主模板template<int N>struct Fib{ enum { Result = Fib<N-1>::Result + Fib<N-2>::Result };};// 完全特化版template <>struct Fib<1>{ enum { Result = 1 };};// 完全特化版template <>struct Fib<0>{ en
阅读全文
posted @
2012-06-04 17:52
salomon
阅读(29283)
推荐(4) 编辑
Extending(扩展)&Embeding(嵌入)python
摘要:跨语言相互调用,一直是不同编程语言间代码交互Interop的难题,微软一直致力于给C++与C#找个理想的”翻译“,这么多年在语法语义(当然还应该包含编译器)和ABI(应用二进制接口)层面做了不少尝试,进而产生了C++\CLI,C++\CX和COM等技术产物,但这些产物如同现实中自然语言翻译一样,并不算太完美(java同其他语言交互的机制不太了解)。在这点上Python似乎把问题解决的很好,这也就是为什么Python会叫做胶水语言。正是由于python的这一特性,所以它被广泛用于自动化测试中。python与其他语言交互: 1.使用ctypes 模块调用 C 动态库:如果被测试模块是以C语言编..
阅读全文
posted @
2012-06-01 16:08
salomon
阅读(4328)
推荐(1) 编辑