12 2011 档案
[转]C#调试
摘要:我们在做程序开发时,难免会遇到错误异常。如何快速地找到出错的地方、分析错误的原因以及找到解决问题的方案,是许多初级程序员困扰的问题,这也正是经验的宝贵之处。下面我将简单介绍在Visual Studio中调试以及一些高级的调试和常见的错误。PS:如无特别说明Visual Studio均指Dev10即Visual Studio 2010。入门篇假设你是有着.Net平台的程序员,并且使用Visual Studio 做为开发工具。断点:最简单的一种,设置一个断点,程序执行到那一句就自动中断进入调试状态。设置断点,在你觉得有问题的代码行,左侧单击,会出现红色的红点即断点。启动调式:按F5,或者菜单栏-.
阅读全文
Returning an IPv4 Address in an IPv6-Enabled Environment
摘要:IntroductionThe Internet is best described as a "network of networks," and every device which is connected to the Internet is uniquely identified by its Internet Protocol (IP) address. When client browsers connect to websites, they pass along a collection of information which the website c
阅读全文
[转]C#线程系列讲座(5):同步技术之Monitor
摘要:在上一讲介绍了使用lock来实现线程之间的同步。实际上,这个lock是C#的一个障眼法,在C#编译器编译lock语句时,将其编译成了调用Monitor类。先看看下面的C#源代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->publicstaticvoidMyLock(){lock(typeof(Program)){}} 上面的代码通过lock语句使MyLock同步,这个方法被编译成IL后,代码如图1所示。 图1 从上图被标注的区域可以看到
阅读全文
[转]C#线程系列讲座(4):同步与死锁
摘要:虽然线程可以在一定程度上提高程序运行的效率,但也会产生一些副作用。让我们先看看如下的代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->classIncrement{privateintn=0;privateintmax;publicIncrement(intmax){this.max=max;}publicintresult{get{returnn;}set{n=value;}}publicvoidInc(){for(inti=0;i&l
阅读全文
[转]C#线程系列讲座(3):线程池和文件下载服务器
摘要:如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一 定程序上消耗服务器的资源。为此,一个最好的解决方法就是在服务器启动之前 ,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好的线程中 获得线程对象,并处理请求。保存这些线程对象的结构就叫做线程池。在C#中可以通过System.Threading.ThreadPool类来实现,在默认情况下, ThreadPool最大可建立500个工作线程和1000个I/O线程(根据机器CPU个数和.net framework版本的不同,这些数据可能会有变化)。下面是一个用C#从线程池获得 线程的例子:private static v
阅读全文
[转]C#线程系列讲座(2):Thread类的应用
摘要:一、 Thread类的基本用法通过System.Threading.Thread类可以开始新的线程,并在线程堆栈中运行静态或实例方法。可以通过Thread类的的构造方法传递一个无参数,并且不返回值(返回void)的委托(ThreadStart),这个委托的定义如下:[ComVisibleAttribute(true)]public delegate void ThreadStart()我们可以通过如下的方法来建立并运行一个线程。using System;using System.Collections.Generic;using System.Linq;using System.Text;us
阅读全文
[转]C#线程系列讲座(1):BeginInvoke和EndInvoke方法
摘要:开发语言:C#3.0IDE:Visual Studio 2008本系列教程主要包括如下内容:1. BeginInvoke和EndInvoke方法2. Thread类3.线程池4.线程同步基础5.死锁6.线程同步的7种方法7.如何在线程中访问GUI组件一、线程概述在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行。这就需要在同一个进程中开启多个线程。我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows任务管理器,这时我们就会看到这个应用程序中所含有的线程数
阅读全文
[转]c# Invoke和BeginInvoke 区别
摘要:Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。(一)Control的Invoke和BeginInvoke我们要基于以下认识:(1)Control的Invoke和BeginInvoke与Delegate的Invoke和BeginInvoke是不同的。(2)Control的Invoke和BeginInvoke的参数为delegate,委托的方法是在Control的线程上执行的,也就是我们平时所说的UI线程。我们以代码(
阅读全文
在iPhone/iPad/iPod touch Home主屏幕界面加快捷方式
摘要:将iPhone/iPad/iPod touch常用设置放置到桌面1. 该方法可以在Home主屏幕界面加入一些系统设置的快捷方式,比如飞行模式、WiFi 设置、亮度调节等等。对于懒人来说,少按一下也是好的,而且很有趣!不是吗?无须任何工具,更无须越狱!注意:该方法仅适用于 iOS 5 及以上。操作步骤:用 iPhone 或 iPad 打开本页面,在下面的表格中,找到你想要添加到主界面的相应设置项目或功能,点击后会新开一个页面,点击该页面下方的 + 或 按钮(iPad 这个按钮在屏幕显示页面的上部),在弹出的菜单中选择[添加至主屏幕],即可将之前选定的设置项目或功能作为快捷方式添加到主屏幕,主屏.
阅读全文
[转]为 iPhone 和 iPad 自定义网站的主屏幕图标
摘要:iPhone 和 iPad 等苹果设备使用主屏幕 (Home Screen, 也称桌面) 管理应用程序, 还可以通过浏览器的添加到主屏幕功能将网站链接作为快捷方式添加为主屏幕图标.是否你也想过为网站定义一个图标, 如果用户将网站添加至主屏幕, 网站链接看起来更像原生程序, 也能获得更多的关注. 除了兼容手机端的浏览体验, 我们还能做得更多, 为 iPhone 和 iPad 自定义网站的主屏幕图标也算其中之一, 本文将对网站的主屏幕图标及其设定方法为进行详细介绍.网站的主屏幕图标iPhone/iPad 上的原生浏览器可以向主屏幕添加小图标, 作为网站入口. 如下:如果网站没做过兼容处理, 小图标
阅读全文
javascript中new function()的返回值,同时利用return的返回不同的结果
摘要:只要new function()的function有返回值的话那么就应该返回function返回值,但是事实上呢?看下边的例子js 代码functionfn() { this.k=1; return1; } fn.prototype={ j:0 }; varf=newfn();//f={} 结果出乎意料,竟然是fn的实例({k:1, j:0});为什么又是function的实例了?继续看下面的实验,在fn中分别return各种数据类型的值,得出一下结果js 代码return1;f={"j":0,"k":1} returnfalse; f={"j
阅读全文
[转]近乎完美的简单 JS 跨域解决方式 --window.name
摘要:=============================================================================== 修 订: Javascript代码 frame.contentWindow.location=wnRequest._proxyUrl;frame.contentWindow.location = wnRequest._proxyUrl;如此赋值在 firefox 中会导致历史记录的产生,可用 Location.replace() 代替,如下: Javascript代码 frame.contentWindow.location.repla
阅读全文
[转]JavaScript跨域总结与解决办法
摘要:什么是跨域JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。这里把涉及到跨域的一些问题简单地整理一下:首先什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。更详细的说明可以看下表:特别注意两点:第一,如果是协议和端口造成的跨域问题“前台”是无能为力的,第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。“URL的首部”指window.locat
阅读全文
浙公网安备 33010602011771号