博客园 - 淡如水wp
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=119717
2015-06-15T00:30:40Z
淡如水wp
https://www.cnblogs.com/icuit/
feed.cnblogs.com
https://www.cnblogs.com/icuit/p/3563901.html
Windows Phone 的这几年 - 淡如水wp
Windows Phone 从2010年10月发布,到如今已经有3年多了。从那时坚持到现在的用户和开发者一定感慨很多吧。一直关注着这个让人既爱又恨的平台的发展,笔者不仅是使用者,也同时是开发者,这里从一个开发者的角度来总结回顾一下WP走过的这几年。机型最早在2010年的WP7时代,三星和HTC都出了不少机型,例如,Focus,O7,HD2,HD7等经典机型。包括DELL,宏碁也都出过机器,但整体都卖的不怎么样。到2011年底的时候,Nokia开始全面推出第二代WP7的机型,包括710,800,900,以及后面的510,610。笔者当时下血本买了个800,一直服役到现在。从2012年WP8发布,
2014-02-23T16:06:00Z
2014-02-23T16:06:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】Windows Phone 从2010年10月发布,到如今已经有3年多了。从那时坚持到现在的用户和开发者一定感慨很多吧。一直关注着这个让人既爱又恨的平台的发展,笔者不仅是使用者,也同时是开发者,这里从一个开发者的角度来总结回顾一下WP走过的这几年。机型最早在2010年的WP7时代,三星和HTC都出了不少机型,例如,Focus,O7,HD2,HD7等经典机型。包括DELL,宏碁也都出过机器,但整体都卖的不怎么样。到2011年底的时候,Nokia开始全面推出第二代WP7的机型,包括710,800,900,以及后面的510,610。笔者当时下血本买了个800,一直服役到现在。从2012年WP8发布, <a href="https://www.cnblogs.com/icuit/p/3563901.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/p/3491605.html
Windows Phone Runtime Component 中的类型转换 - 淡如水wp
Windows Phone Runtime Component 是Windows Phone 平台用来写C++类库的项目类型。主要目的是让C#和C++进行互操作,引用历史的C++代码,保护知识产权,提供性能等。这里要注意可能会涉及到多种类型系统,分别是:标准C++类型系统。可能很少会用到,但也难免。如:char, bool, int 等。微软Win32类型系统。都是一些宏定义,看着就烦。如:TCHAR, CHAR, LPSTR 等。微软Windows Runtime类型系统。为了在C++/CX和C#/.NET之间交互的通信类型。如:HSTRING等。C++/CX类型系统:微软用于开发商店应用和
2013-12-25T15:58:00Z
2013-12-25T15:58:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】Windows Phone Runtime Component 是Windows Phone 平台用来写C++类库的项目类型。主要目的是让C#和C++进行互操作,引用历史的C++代码,保护知识产权,提供性能等。这里要注意可能会涉及到多种类型系统,分别是:标准C++类型系统。可能很少会用到,但也难免。如:char, bool, int 等。微软Win32类型系统。都是一些宏定义,看着就烦。如:TCHAR, CHAR, LPSTR 等。微软Windows Runtime类型系统。为了在C++/CX和C#/.NET之间交互的通信类型。如:HSTRING等。C++/CX类型系统:微软用于开发商店应用和 <a href="https://www.cnblogs.com/icuit/p/3491605.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/p/3172741.html
Windows平台下的线程同步 - 淡如水wp
引子:这几天在写一个windows phone平台上的service,由于Windows phone 的内核是基于Windows NT的,这也意味着写Windows Phone的Service代码与Win32更接近了。虽然功能很少,但是一旦release出去,就像泼出去的水,如果我的代码出了Bug,用户只有更新固件才能获取更新,压力还是挺大。主要的担心点是线程同步:代码注册了一个系统的事件,当系统触发事件时,会调用事件相应的callback函数,而此callback与main线程不在同一个线程,自然引发了线程同步的问题。索性再次翻开《Windows via C++》,复习一下线程同步的基础知识
2013-07-04T15:08:00Z
2013-07-04T15:08:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】引子:这几天在写一个windows phone平台上的service,由于Windows phone 的内核是基于Windows NT的,这也意味着写Windows Phone的Service代码与Win32更接近了。虽然功能很少,但是一旦release出去,就像泼出去的水,如果我的代码出了Bug,用户只有更新固件才能获取更新,压力还是挺大。主要的担心点是线程同步:代码注册了一个系统的事件,当系统触发事件时,会调用事件相应的callback函数,而此callback与main线程不在同一个线程,自然引发了线程同步的问题。索性再次翻开《Windows via C++》,复习一下线程同步的基础知识 <a href="https://www.cnblogs.com/icuit/p/3172741.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/24/2830775.html
分享一些最近在看的电子书 - 淡如水wp
性能方面:《.Net Performance Testing And Optimization》:.NET性能测试和优化,还没细看。《Pro. Net Performance》.NET性能介绍,介绍的很全面。但部分内容与CLR via C# 有重叠。ASP.NET MVC,HTML方面:《asp.net mvc 4 in action》 ASP.NET MVC 4 实战,大概扫了一遍,对MVC有了初步的了解。《Professional.Asp.Net.MVC4》MVC4高级编程《Pro. HTML5 Programming》 HTML5高级编程.NET基础《CLR via C# 4》 不多说了
2012-12-24T03:59:00Z
2012-12-24T03:59:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】性能方面:《.Net Performance Testing And Optimization》:.NET性能测试和优化,还没细看。《Pro. Net Performance》.NET性能介绍,介绍的很全面。但部分内容与CLR via C# 有重叠。ASP.NET MVC,HTML方面:《asp.net mvc 4 in action》 ASP.NET MVC 4 实战,大概扫了一遍,对MVC有了初步的了解。《Professional.Asp.Net.MVC4》MVC4高级编程《Pro. HTML5 Programming》 HTML5高级编程.NET基础《CLR via C# 4》 不多说了 <a href="https://www.cnblogs.com/icuit/archive/2012/12/24/2830775.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/17/2821273.html
Can't connect to your phone. Disconnect it, restart it, then try connecting again - 淡如水wp
今天当我的Lumia800连接到电脑时,总是弹出Can't connect to your phone. Disconnect it, restart it, then try connecting again的提示,不管我重启zune还是手机都无济于事,于是搜到解决方案。Create a new certificate and restore files1. Create a new certificateIf your Zune software is open on your computer, close it, and then disconnect your phone f
2012-12-17T01:59:00Z
2012-12-17T01:59:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】今天当我的Lumia800连接到电脑时,总是弹出Can't connect to your phone. Disconnect it, restart it, then try connecting again的提示,不管我重启zune还是手机都无济于事,于是搜到解决方案。Create a new certificate and restore files1. Create a new certificateIf your Zune software is open on your computer, close it, and then disconnect your phone f <a href="https://www.cnblogs.com/icuit/archive/2012/12/17/2821273.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/12/2815523.html
08,Windows Phone 本地存储 - 淡如水wp
内容预告:Windows Phone 的数据库支持LINQ to SQL性能和最佳实践LINQ to Everything:支持复杂的结构:支持外键:WebService缓存:本地存储:架构:对象:定义表: // Define the tables in the database [Table] public class Wine :INotifyPropertyChanged,INotifyPropertyChanging { private string wineID; private string name; [Column(IsPri...
2012-12-12T15:11:00Z
2012-12-12T15:11:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:Windows Phone 的数据库支持LINQ to SQL性能和最佳实践LINQ to Everything:支持复杂的结构:支持外键:WebService缓存:本地存储:架构:对象:定义表: // Define the tables in the database [Table] public class Wine :INotifyPropertyChanged,INotifyPropertyChanging { private string wineID; private string name; [Column(IsPri... <a href="https://www.cnblogs.com/icuit/archive/2012/12/12/2815523.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/12/2815064.html
07,Windows Phone后台代理 - 淡如水wp
内容预告:Windows Phone 任务管理用后台代码实现多任务在Visual Studio中创建任务文件传输任务后台提醒后台音乐播放前台任务:一般来说,一个Windows Phone应用程序运行在前台时,它可以与用户直接交互,但同时只能有一个程序运行在前台,是为了保证性能和电量。后台代理:Windows Phone应用程序可以开启一个后台代理,类型可以是定期执行或资源密集型或两者兼俱型,但每个程序只能有一个后台代理。后台代理和前台程序运行在后台不是一回事,后台代理只能做有限的事情。后台代理的限制:在Windows Phone系统上同时可运行后台代理的数量有限的,且只有在条件允许的情况下操作
2012-12-12T14:32:00Z
2012-12-12T14:32:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:Windows Phone 任务管理用后台代码实现多任务在Visual Studio中创建任务文件传输任务后台提醒后台音乐播放前台任务:一般来说,一个Windows Phone应用程序运行在前台时,它可以与用户直接交互,但同时只能有一个程序运行在前台,是为了保证性能和电量。后台代理:Windows Phone应用程序可以开启一个后台代理,类型可以是定期执行或资源密集型或两者兼俱型,但每个程序只能有一个后台代理。后台代理和前台程序运行在后台不是一回事,后台代理只能做有限的事情。后台代理的限制:在Windows Phone系统上同时可运行后台代理的数量有限的,且只有在条件允许的情况下操作 <a href="https://www.cnblogs.com/icuit/archive/2012/12/12/2815064.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/12/2815051.html
06,Windows Phone 8程序的生命周期 - 淡如水wp
内容预告:启动(Launching)和关闭(Closing)Deactviating和ActivatingDormant和Tombstoned用模拟器模拟这些事件空闲检测快速恢复生命周期规划页面导航和后退栈Windows Phone应用程序在不同的状态间过渡的图示如下:程序从点击开始屏幕的图标上启动,用户可以关闭程序,系统可能挂起你的程序(在程序失去焦点的时候),挂起的程序可能会进入墓碑,程序可能从挂起状态激活。当用户启动一个新的程序的实例时,之前的挂起状态会丢失。比如当运行一个程序时,点到了Home键,再点击开始屏幕的图标上启动程序,按Home键之前挂起状态会丢失,正确的做法是按住Back键
2012-12-12T09:35:00Z
2012-12-12T09:35:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:启动(Launching)和关闭(Closing)Deactviating和ActivatingDormant和Tombstoned用模拟器模拟这些事件空闲检测快速恢复生命周期规划页面导航和后退栈Windows Phone应用程序在不同的状态间过渡的图示如下:程序从点击开始屏幕的图标上启动,用户可以关闭程序,系统可能挂起你的程序(在程序失去焦点的时候),挂起的程序可能会进入墓碑,程序可能从挂起状态激活。当用户启动一个新的程序的实例时,之前的挂起状态会丢失。比如当运行一个程序时,点到了Home键,再点击开始屏幕的图标上启动程序,按Home键之前挂起状态会丢失,正确的做法是按住Back键 <a href="https://www.cnblogs.com/icuit/archive/2012/12/12/2815051.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/09/2810482.html
.NET 性能测试工具 -- 事件跟踪器(ETW) - 淡如水wp
内容预告:Windows内置工具(性能计数器)事件跟踪器(WPT,PerfMoniter,PerfView,自定义ETW)时间分析内存分配分析内存使用量分析其他分析Event Tracing for Windows(ETW)可以查看很多内核和CLR的性能数据,如下表所示,有几个工具都是基于ETW开发的,后面会详细介绍:KernelPROC_THREADCreation and destruction of processes and threadsKernelLOADERLoad and unload of images (DLLs, drivers, EXEs)KernelSYSCALLSy
2012-12-09T14:03:00Z
2012-12-09T14:03:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:Windows内置工具(性能计数器)事件跟踪器(WPT,PerfMoniter,PerfView,自定义ETW)时间分析内存分配分析内存使用量分析其他分析Event Tracing for Windows(ETW)可以查看很多内核和CLR的性能数据,如下表所示,有几个工具都是基于ETW开发的,后面会详细介绍:KernelPROC_THREADCreation and destruction of processes and threadsKernelLOADERLoad and unload of images (DLLs, drivers, EXEs)KernelSYSCALLSy <a href="https://www.cnblogs.com/icuit/archive/2012/12/09/2810482.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/09/2810295.html
.NET 性能测试工具 -- 性能计数器 - 淡如水wp
内容预告:Windows内置工具(性能计数器)事件跟踪器时间分析内存分配分析内存使用量分析其他分析性能计数器:直接win+R运行 perfmon.exe 即可打开。可以在以下场景下使用:如果发现有内存泄露,性能计数器可以被用来检查托管还是本地内存分配的问题。Process\Private Bytes可以查看所有进程分配的private内存(包括GC堆)和.NET CLR Memory\# Bytes in All Heaps可以查看托管内存。如果ASP.NET程序有反常的行为,在ASP.NET目录下可以看详细信息,比如请求时间,请求超时时间, 请求等待时间, 请求执行时间等计数器可以确认负载情
2012-12-09T14:02:00Z
2012-12-09T14:02:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:Windows内置工具(性能计数器)事件跟踪器时间分析内存分配分析内存使用量分析其他分析性能计数器:直接win+R运行 perfmon.exe 即可打开。可以在以下场景下使用:如果发现有内存泄露,性能计数器可以被用来检查托管还是本地内存分配的问题。Process\Private Bytes可以查看所有进程分配的private内存(包括GC堆)和.NET CLR Memory\# Bytes in All Heaps可以查看托管内存。如果ASP.NET程序有反常的行为,在ASP.NET目录下可以看详细信息,比如请求时间,请求超时时间, 请求等待时间, 请求执行时间等计数器可以确认负载情 <a href="https://www.cnblogs.com/icuit/archive/2012/12/09/2810295.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/09/2799348.html
05,WP8的文件和存储 - 淡如水wp
内容预告:特殊的文件夹(Shared/Media,Shared/ShellContent,Shared/Transfer)用ISET浏览本地文件夹后台文件传输使用SD存储卡但不包括:本地数据库(基于LINQ的sqlce)SQLite本地数据存储概览:打包管理器把所有的App放到"安装文件夹",App存储数据到"本地文件夹"。定位存储位置的不同方式:WP8文件存储的备选方案:三种方式// WP7.1 IsolatedStorage APIsvar isf = IsolatedStorageFile.GetUserStoreForApplication()
2012-12-09T02:50:00Z
2012-12-09T02:50:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:特殊的文件夹(Shared/Media,Shared/ShellContent,Shared/Transfer)用ISET浏览本地文件夹后台文件传输使用SD存储卡但不包括:本地数据库(基于LINQ的sqlce)SQLite本地数据存储概览:打包管理器把所有的App放到"安装文件夹",App存储数据到"本地文件夹"。定位存储位置的不同方式:WP8文件存储的备选方案:三种方式// WP7.1 IsolatedStorage APIsvar isf = IsolatedStorageFile.GetUserStoreForApplication() <a href="https://www.cnblogs.com/icuit/archive/2012/12/09/2799348.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/09/2804249.html
C#中的线程 -- 同步基础(同步本质,线程安全,线程中断) - 淡如水wp
内容预告:线程入门(线程概念,创建线程)同步基础(同步本质,线程安全,线程中断,线程状态,同步上下文)使用线程(后台任务,线程池,读写锁,异步代理,定时器,本地存储)高级话题(非阻塞线程,扶起和恢复)同步的本质:下面的列表总结了.NET同步线程的工具:阻塞函数:Sleep:阻塞线程一定时间。Join:阻塞另一个线程至本线程完成。加锁结构:lock:保证只有一个线程可以存取同一个资源,或操作一段代码。不能跨进程。速度快。Mutex:保证只有一个线程可以存取同一个资源,或操作一段代码。可以用来阻止一个程序启动多个线程。可以跨进程,速度一般。Semaphore:保证不超过某个数量的线程可以存取同一个
2012-12-09T02:49:00Z
2012-12-09T02:49:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:线程入门(线程概念,创建线程)同步基础(同步本质,线程安全,线程中断,线程状态,同步上下文)使用线程(后台任务,线程池,读写锁,异步代理,定时器,本地存储)高级话题(非阻塞线程,扶起和恢复)同步的本质:下面的列表总结了.NET同步线程的工具:阻塞函数:Sleep:阻塞线程一定时间。Join:阻塞另一个线程至本线程完成。加锁结构:lock:保证只有一个线程可以存取同一个资源,或操作一段代码。不能跨进程。速度快。Mutex:保证只有一个线程可以存取同一个资源,或操作一段代码。可以用来阻止一个程序启动多个线程。可以跨进程,速度一般。Semaphore:保证不超过某个数量的线程可以存取同一个 <a href="https://www.cnblogs.com/icuit/archive/2012/12/09/2804249.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/09/2799306.html
04,WP8的async和await - 淡如水wp
内容预告:awaitable的对象如何工作并行处理的新方法用async替代BackgroundWorkder了解为什么不再使用线程和线程池异步函数与基于任务的编程模型(TPM==Task Programming Model):WP7.1用.NET4.0的模式支持异步编程:BeginXYZ,EndXYZ函数,如HttpWebRequest.BeginGetResponse, EndGetResponse。WP7.1异步事件模型:设置一个Completed事件处理器,然后用XYZAsync调用操作,如WebClient.DownloadAsync函数和DownloadCompleted enent
2012-12-09T02:01:00Z
2012-12-09T02:01:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:awaitable的对象如何工作并行处理的新方法用async替代BackgroundWorkder了解为什么不再使用线程和线程池异步函数与基于任务的编程模型(TPM==Task Programming Model):WP7.1用.NET4.0的模式支持异步编程:BeginXYZ,EndXYZ函数,如HttpWebRequest.BeginGetResponse, EndGetResponse。WP7.1异步事件模型:设置一个Completed事件处理器,然后用XYZAsync调用操作,如WebClient.DownloadAsync函数和DownloadCompleted enent <a href="https://www.cnblogs.com/icuit/archive/2012/12/09/2799306.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/09/2798484.html
03,构建WP8应用程序 - 淡如水wp
内容预告:Application Bar页面导航处理页面的横竖向改变处理不同的屏幕分辨率本地化Toolkit页面过渡Frame 和 Page:Frame是最外层的窗器,是PhoneApplicationFrame类,包括Page和系统元素(像系统托盘,ApplicationBar)。Page填充整个Frame的内容区域,从PhoneApplicationPage类派生,包括一个Title,可选择是否加入ApplicationBar。页面导航:Silverlight在WindowsPhone上用基于页面的导航模式,类似Web页面导航,每个页面有一个URI,每个页面本质上是无状态的。private
2012-12-09T02:00:00Z
2012-12-09T02:00:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:Application Bar页面导航处理页面的横竖向改变处理不同的屏幕分辨率本地化Toolkit页面过渡Frame 和 Page:Frame是最外层的窗器,是PhoneApplicationFrame类,包括Page和系统元素(像系统托盘,ApplicationBar)。Page填充整个Frame的内容区域,从PhoneApplicationPage类派生,包括一个Title,可选择是否加入ApplicationBar。页面导航:Silverlight在WindowsPhone上用基于页面的导航模式,类似Web页面导航,每个页面有一个URI,每个页面本质上是无状态的。private <a href="https://www.cnblogs.com/icuit/archive/2012/12/09/2798484.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/09/2797956.html
02,设计Windows Phone 应用 - 淡如水wp
内容预告:Windows Phone 设计设计一个应用介绍XAML布局样式和主题设计时数据显示数据绑定Lists 和 LongListSelectorWindows Phone 设计风格:WindowsPhone团队的设计灵感来自大都市的标牌,开发时应反映这种风格。Windows Phone 设计原则:1,清爽,简单,开放,快速快速响应专注主要功能用很少做很多减少不必要的元素令人愉快地使用空间全屏绘制2,展示排版清晰且漂亮直接表达信息坚定地偏向重量,平衡,缩放3,充满情感感觉灵敏和鲜活创造一个系统增加可用性体现UI之间的过渡的重要性增加维度和深度4,内容,而非装饰深入内容,取代装饰取消非内容的
2012-12-09T01:59:00Z
2012-12-09T01:59:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:Windows Phone 设计设计一个应用介绍XAML布局样式和主题设计时数据显示数据绑定Lists 和 LongListSelectorWindows Phone 设计风格:WindowsPhone团队的设计灵感来自大都市的标牌,开发时应反映这种风格。Windows Phone 设计原则:1,清爽,简单,开放,快速快速响应专注主要功能用很少做很多减少不必要的元素令人愉快地使用空间全屏绘制2,展示排版清晰且漂亮直接表达信息坚定地偏向重量,平衡,缩放3,充满情感感觉灵敏和鲜活创造一个系统增加可用性体现UI之间的过渡的重要性增加维度和深度4,内容,而非装饰深入内容,取代装饰取消非内容的 <a href="https://www.cnblogs.com/icuit/archive/2012/12/09/2797956.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/08/2796238.html
01,Windows Phone 8 介绍 - 淡如水wp
内容预告:WP8中新的开发平台应用开发模型WinRT的WP8版本支持的开发模式WP8开发入门新功能预览用Windows Phone的开发工具与WP7.X的兼容性新的WP8硬件:Nokia Lumia 920, 820, HTC 8X, Huiwei W1, Sumsung ATIV S。新的硬件配置:多核,新的图形处理器,更大的内存,多分辨率,存储卡,加密存储,NFC。共享Windows内核:Windows8将与WindowsPhone8在系统级别共享多个组件。共享内核意味着:内核,网络,图形,文件系统,多媒体组件是相同的。硬件制造商可以用同样的驱动工作。WindowsPhone支持多核。稳定
2012-12-08T08:57:00Z
2012-12-08T08:57:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:WP8中新的开发平台应用开发模型WinRT的WP8版本支持的开发模式WP8开发入门新功能预览用Windows Phone的开发工具与WP7.X的兼容性新的WP8硬件:Nokia Lumia 920, 820, HTC 8X, Huiwei W1, Sumsung ATIV S。新的硬件配置:多核,新的图形处理器,更大的内存,多分辨率,存储卡,加密存储,NFC。共享Windows内核:Windows8将与WindowsPhone8在系统级别共享多个组件。共享内核意味着:内核,网络,图形,文件系统,多媒体组件是相同的。硬件制造商可以用同样的驱动工作。WindowsPhone支持多核。稳定 <a href="https://www.cnblogs.com/icuit/archive/2012/12/08/2796238.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/12/05/2800941.html
C#中的线程 -- 线程入门 - 淡如水wp
内容预告:线程入门(线程概念,创建线程)同步基础(同步本质,线程安全,线程中断,线程状态,同步上下文)使用线程(后台任务,线程池,读写锁,异步代理,定时器,本地存储)高级话题(非阻塞线程,扶起和恢复)概览:C#支持通过多线程并行地执行代码,一个线程是独立的执行个体,可以和其他线程同时运行。CLR和操作系统会给C#程序开启一个线程(主线程),可以被用来作为创建多线程的起点,例子:class ThreadTest {static void Main() {Thread t = new Thread (WriteY);t.Start(); // Run WriteY on the new threa
2012-12-04T17:24:00Z
2012-12-04T17:24:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】内容预告:线程入门(线程概念,创建线程)同步基础(同步本质,线程安全,线程中断,线程状态,同步上下文)使用线程(后台任务,线程池,读写锁,异步代理,定时器,本地存储)高级话题(非阻塞线程,扶起和恢复)概览:C#支持通过多线程并行地执行代码,一个线程是独立的执行个体,可以和其他线程同时运行。CLR和操作系统会给C#程序开启一个线程(主线程),可以被用来作为创建多线程的起点,例子:class ThreadTest {static void Main() {Thread t = new Thread (WriteY);t.Start(); // Run WriteY on the new threa <a href="https://www.cnblogs.com/icuit/archive/2012/12/05/2800941.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/11/29/2793858.html
.NET 值类型的性能 - 淡如水wp
深入理解值类型:值类型的内存布局更简单,但是它引入一些限制和装箱,装箱是一个代价高昂的过程。用值类型的主要原因是其内存密度高而且开销少。下面还是以简单的Point2D来讨论:public struct Point2D{public int X;public int Y;}Point2D实例以X=5, Y=7初始化的内存布局就像下图一样,没有额外的开销:少数罕见的情况下,需要自定义值类型的内存布局,一个例子是为了达到互操作的目的,当值类型的实例原样传到非托管代码时。可以通过两个属性来做这种自定义,StructLayout 和 FieldOffset。StructLayout可以用来指定对象的字段
2012-11-29T09:23:00Z
2012-11-29T09:23:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】深入理解值类型:值类型的内存布局更简单,但是它引入一些限制和装箱,装箱是一个代价高昂的过程。用值类型的主要原因是其内存密度高而且开销少。下面还是以简单的Point2D来讨论:public struct Point2D{public int X;public int Y;}Point2D实例以X=5, Y=7初始化的内存布局就像下图一样,没有额外的开销:少数罕见的情况下,需要自定义值类型的内存布局,一个例子是为了达到互操作的目的,当值类型的实例原样传到非托管代码时。可以通过两个属性来做这种自定义,StructLayout 和 FieldOffset。StructLayout可以用来指定对象的字段 <a href="https://www.cnblogs.com/icuit/archive/2012/11/29/2793858.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/11/27/2791789.html
.NET 引用类型的性能 - 淡如水wp
一、引子 假如有一个Point2D类表达一个二维空间--点,每个坐标都是一个short类型,整个对象有4个字节。如果存储100万个点,会用多少字节的空间?答案是取决于Point2D是值类型还是引用类型,如果是引用类型,100万个点将会存储100万个引用,这些引用在32位操作系统上就是40M左右,但这些对象本身还要占最少同样的空间,事实上,每个Point2D将会占12个字节的空间,这样算下来总的内存数在160M。但如果是值类型,没有一个多余字节的浪费,就是整整40M,只有引用类型时的1/4,不同就在于值类型的内存密度。 存储成引用类型还有一个缺点是如果想在这个巨型的堆对象引用数组(非连续存储..
2012-11-27T15:30:00Z
2012-11-27T15:30:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】一、引子 假如有一个Point2D类表达一个二维空间--点,每个坐标都是一个short类型,整个对象有4个字节。如果存储100万个点,会用多少字节的空间?答案是取决于Point2D是值类型还是引用类型,如果是引用类型,100万个点将会存储100万个引用,这些引用在32位操作系统上就是40M左右,但这些对象本身还要占最少同样的空间,事实上,每个Point2D将会占12个字节的空间,这样算下来总的内存数在160M。但如果是值类型,没有一个多余字节的浪费,就是整整40M,只有引用类型时的1/4,不同就在于值类型的内存密度。 存储成引用类型还有一个缺点是如果想在这个巨型的堆对象引用数组(非连续存储.. <a href="https://www.cnblogs.com/icuit/archive/2012/11/27/2791789.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/icuit/archive/2012/11/27/2791186.html
.NET性能要素 - 淡如水wp
一、性能衡量要素CPU使用率(百分比)物理/虚拟内存使用量(KB,MB,GB)缓存命中率(次数,率/每秒)页面错误率(次数,率/每秒)数据库存储时间(率/每秒)内存分配(字节数,对象数,率/每秒)执行时间(字节数,对象数,率/每秒)网络操作量(次数,率/每秒)硬盘操作量(次数,率/每秒)响应时间(毫秒)垃圾回收(次数,率/每秒,花费的时间)异常(次数,率/每秒)启动时间(毫秒)并发冲突 (次数,率/每秒)二、不同场景下的看重因素 客户端程序:启动时间,内存使用量,CPU使用率。 服务端程序:CPU使用率,缓存命中率,并发冲突,内存分配,垃圾回收。 WEB应用:内存使用量,数据库存储时间,...
2012-11-27T09:30:00Z
2012-11-27T09:30:00Z
淡如水wp
https://www.cnblogs.com/icuit/
【摘要】一、性能衡量要素CPU使用率(百分比)物理/虚拟内存使用量(KB,MB,GB)缓存命中率(次数,率/每秒)页面错误率(次数,率/每秒)数据库存储时间(率/每秒)内存分配(字节数,对象数,率/每秒)执行时间(字节数,对象数,率/每秒)网络操作量(次数,率/每秒)硬盘操作量(次数,率/每秒)响应时间(毫秒)垃圾回收(次数,率/每秒,花费的时间)异常(次数,率/每秒)启动时间(毫秒)并发冲突 (次数,率/每秒)二、不同场景下的看重因素 客户端程序:启动时间,内存使用量,CPU使用率。 服务端程序:CPU使用率,缓存命中率,并发冲突,内存分配,垃圾回收。 WEB应用:内存使用量,数据库存储时间,... <a href="https://www.cnblogs.com/icuit/archive/2012/11/27/2791186.html" target="_blank">阅读全文</a>