2011年12月9日
摘要: 虽然线程可以在一定程度上提高程序运行的效率,但也会产生一些副作用。让我们先看看如下的代码: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 阅读全文
posted @ 2011-12-09 18:13 pct_zhang 阅读(213) 评论(0) 推荐(0)
摘要: 如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一 定程序上消耗服务器的资源。为此,一个最好的解决方法就是在服务器启动之前 ,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好的线程中 获得线程对象,并处理请求。保存这些线程对象的结构就叫做线程池。在C#中可以通过System.Threading.ThreadPool类来实现,在默认情况下, ThreadPool最大可建立500个工作线程和1000个I/O线程(根据机器CPU个数和.net framework版本的不同,这些数据可能会有变化)。下面是一个用C#从线程池获得 线程的例子:private static v 阅读全文
posted @ 2011-12-09 17:24 pct_zhang 阅读(237) 评论(0) 推荐(0)
摘要: 一、 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 阅读全文
posted @ 2011-12-09 16:14 pct_zhang 阅读(217) 评论(0) 推荐(0)
摘要: 开发语言:C#3.0IDE:Visual Studio 2008本系列教程主要包括如下内容:1. BeginInvoke和EndInvoke方法2. Thread类3.线程池4.线程同步基础5.死锁6.线程同步的7种方法7.如何在线程中访问GUI组件一、线程概述在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行。这就需要在同一个进程中开启多个线程。我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows任务管理器,这时我们就会看到这个应用程序中所含有的线程数 阅读全文
posted @ 2011-12-09 16:12 pct_zhang 阅读(173) 评论(0) 推荐(0)
摘要: Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。(一)Control的Invoke和BeginInvoke我们要基于以下认识:(1)Control的Invoke和BeginInvoke与Delegate的Invoke和BeginInvoke是不同的。(2)Control的Invoke和BeginInvoke的参数为delegate,委托的方法是在Control的线程上执行的,也就是我们平时所说的UI线程。我们以代码( 阅读全文
posted @ 2011-12-09 10:17 pct_zhang 阅读(206) 评论(0) 推荐(0)
2011年12月8日
摘要: 将iPhone/iPad/iPod touch常用设置放置到桌面1. 该方法可以在Home主屏幕界面加入一些系统设置的快捷方式,比如飞行模式、WiFi 设置、亮度调节等等。对于懒人来说,少按一下也是好的,而且很有趣!不是吗?无须任何工具,更无须越狱!注意:该方法仅适用于 iOS 5 及以上。操作步骤:用 iPhone 或 iPad 打开本页面,在下面的表格中,找到你想要添加到主界面的相应设置项目或功能,点击后会新开一个页面,点击该页面下方的 + 或 按钮(iPad 这个按钮在屏幕显示页面的上部),在弹出的菜单中选择[添加至主屏幕],即可将之前选定的设置项目或功能作为快捷方式添加到主屏幕,主屏. 阅读全文
posted @ 2011-12-08 16:03 pct_zhang 阅读(7239) 评论(0) 推荐(0)
摘要: iPhone 和 iPad 等苹果设备使用主屏幕 (Home Screen, 也称桌面) 管理应用程序, 还可以通过浏览器的添加到主屏幕功能将网站链接作为快捷方式添加为主屏幕图标.是否你也想过为网站定义一个图标, 如果用户将网站添加至主屏幕, 网站链接看起来更像原生程序, 也能获得更多的关注. 除了兼容手机端的浏览体验, 我们还能做得更多, 为 iPhone 和 iPad 自定义网站的主屏幕图标也算其中之一, 本文将对网站的主屏幕图标及其设定方法为进行详细介绍.网站的主屏幕图标iPhone/iPad 上的原生浏览器可以向主屏幕添加小图标, 作为网站入口. 如下:如果网站没做过兼容处理, 小图标 阅读全文
posted @ 2011-12-08 15:25 pct_zhang 阅读(456) 评论(0) 推荐(0)
摘要: 只要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 阅读全文
posted @ 2011-12-08 10:16 pct_zhang 阅读(2925) 评论(0) 推荐(0)
2011年12月7日
摘要: =============================================================================== 修 订: Javascript代码 frame.contentWindow.location=wnRequest._proxyUrl;frame.contentWindow.location = wnRequest._proxyUrl;如此赋值在 firefox 中会导致历史记录的产生,可用 Location.replace() 代替,如下: Javascript代码 frame.contentWindow.location.repla 阅读全文
posted @ 2011-12-07 17:50 pct_zhang 阅读(355) 评论(0) 推荐(0)
摘要: 什么是跨域JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。这里把涉及到跨域的一些问题简单地整理一下:首先什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。更详细的说明可以看下表:特别注意两点:第一,如果是协议和端口造成的跨域问题“前台”是无能为力的,第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。“URL的首部”指window.locat 阅读全文
posted @ 2011-12-07 16:34 pct_zhang 阅读(236) 评论(0) 推荐(0)