async、迭代器都是语法糖,编译器会帮你实现成一个状态机匿名类,实例里面hold住一些临时变量,记录一下当前状态。根据你写的yield/await,把一个异步方法拆成几个同步block,根据一定规则定期的去MoveNext一下,Current是Task那我就根据你配置的线程上下文决定把这个Task跑在哪个线程上。
那么用await修饰的异步方法是在哪个线程中被调用的?为什么上面这个事件处理方法不会阻塞GUI?
我还看到其它一些描述是说使用async/await异步模式不会生成新的线程,那么只在原来已有线程的基础上面如何做到异步运行?
题主这个例子这个方法就是在UI线程调用的,并且没有ConfigureAwait(false),所以会在当前await时捕捉的UI线程上下文执行之后的同步block。
至于为什么不会阻塞,可以简单理解为执行了第一个block,碰到Delay(4000),给UI线程的定时器挂一个4000时间之后再调用下一个同步块的回调。
看题主说的书名像是国产的书,这方面还是看《CLR via C#》或者《Concurrency in C# cookbook》比较好。
可以在以下网站下载http://www.xz7.com/dir/292408.html
c高级编程第10版中文版简介
是一本关于如何学习c#语言的图书,由美国christian nagel、bill evjen、jay glynn、karli watson等著作,李铭翻译,全书主要标注了专用于.NET Framework 4.5的新增内容,详细论述了异步编程、模式、基础和方法,研究了Windows 8开发的新选项和接口、WinRT和Windows 8样式应用程序,阐述了文件和注册表的 *** 作,介绍了WPF编程,包括样式、数据驱动的应用程序和文档、ASP.NET Web Forms以及ASP.NETMVC,是学习c#最好的教程。
C#是编写.NET应用程序的一种语言,本书适合于希望提高编程技巧的、有经验的C#程序员,也适用于刚开始使用C#的专业开发人员。《C#高级编程(第9版):C# 5.0 &.NET 4.5.1 》探讨了Visual Studio 2013和.net framework 4.5.1、新的测试驱动开发和并发编程功能。所有示例的都可以下载,读者可以立即开始编写Windows桌面应用程序、Windows Store应用程序和ASP.NET Web应用程序。 需要的朋友们可以下载试试吧!
本书以最新的.NET Frame-work2.0和Visual Studio2005为基础。
本书首先探讨了C#的基础知识,包括基本语法、数据类型和面向对象的特性。接着阐述了如何把该语言应用于各种使用相关技术的应用程序,倒如数据库访问和高级绘图技术。这种方式有助于对C#语言的各个方面进行深入细致的理解,以专业人员的方式开始编程。
本书涵盖的内容有助于编写动态Web页面、XML Web服务、分布式应用程序的组件,以及Windows桌面应用程序等。
本书主要内容:NET环境中的编程原则,创建Windows应用程序和Windows服务的方式,使用已有的COM组件和NET应用程序,用asp . net编写动态的Web页面和Web服务。用C#2005处理XML的技术。用ADO . NET访问数据库,与目录交互 *** 作,编写在Web站点上运行的删节组件。
本书读者对象:本书适用于已具有C++、Visual Basic或J++等编程经验的开人发员。本书还适合于了解NET1.0,但准备迁移到NET2.0和Visual Studio 2005的程序员。
评论该书对于c#语言、.NET framework的学习很有帮助,但是是从外文翻译过来的,对于有些内容不容易理解。
1、《C# 5.0 in a Nutshell》:权威的参考书
学习C#的最佳书籍之一。如果你想要获取最新的信息以增长有关C#语言编程的知识,这是最好的选择之一。该书深入浅出地探讨了有关C#语言的知识。不过要想能够充分吸收消化,你需要掌握一些关于C语言的基本知识。总之,这本书绝对能让你获益良多。
全书首先简单地介绍了一下C#语言开发的相关背景,之后马上跳转到数据类型的基本原理。然后用一种系统化的方法讲述编程方面的信息内容。你还可以练习上面写的代码示例,这些示例可以从互联网上免费下载至LINQPAD中。
2、《Head First C#》
学习新的编程语言的最好方法是学习它的各种实例。此书就提供了很多可供读者亲自动手的项目。这些项目不但易记、易参与,还易扩展。举一个例子,蜂窝管理系统的项目提供了关于在接口和继承方面的改善代码,可以避免你的重复性工作。
索引写得也非常好,由于其包含了相关概念,所以能有助于你轻轻松松找到所需内容。
3、《C# in Depth, 第三版》
这本书主要为那些已具备一定的C#编程经验的开发人员而编写。和其他的编程手册相比,这本书的结构虽然简单,但很新颖。第一章的开头讲了C#语言的基础知识,引用了C#1版本。第2章提到了C#2版本的变化。第3章则涵盖了C#3版本所做的更改。依此类推。通过这种方式,来让读者理解此编程语言的演变。
4、《Programming C# 5.0》: 支持使用 .NET 4.5框架构建Win8、Web和桌面应用
这是倾向于C#开发人员利益的最好书籍之一。这本书写得很不错,编程知识非常务实。目标读者就是那些有经验但却还是.NET和C#编程新手的程序员。
这是一本详尽、见闻广博又一丝不苟的编程之书。作者将每一个概念都解释得非常清楚,还有特定概念的相关范例。可谓是为那些正在使用这种语言的开发人员提供了全面又详细的信息。由于它涵盖了此编程语言的绝大多数范围,所以特别适合那些严谨的开发人员。
扩展资料:
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化 *** 作和C++的高运行效率,以其强大的 *** 作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
参考资料:百度百科-C#
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)