上一页 1 2 3 4 5 6 7 8 ··· 28 下一页
摘要: 大家可以看到,在上面的例程中,同步是通过等待Monitor.Pulse()来完成的。首先生产者生产了一个值,而同一时刻消费者处于等待状态,直到收到生产者的“脉冲(Pulse)”通知它生产已经完成,此后消费者进入消费状态,而生产者开始等待消费者完成操作后将调用Monitor.Pulese()发出的“脉冲”。它的执行结果很简单: Produce: 1 Consume: 1 Produce: 2 Consume: 2 Produce: 3 Consume: 3 ... ... Produce: 20 Consume: 20 事实上,这个简单的例子已经帮助我们解决了多线程应用程序中可能出现的大问题,只 阅读全文
posted @ 2011-03-09 13:27 水木 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 然后在下面这个类MonitorSample的Main()函数中我们要做的就是创建两个线程分别作为生产者和消费者,使用CellProd.ThreadRun()方法和CellCons.ThreadRun()方法对同一个Cell对象进行操作。 public class MonitorSample { public static void Main(String[] args) { int result = 0; file://一个标志位,如果是0表示程序没有出错,如果是1表明有错误发生 Cell cell = new Cell( ); //下面使用cell初始化CellProd和CellCons两. 阅读全文
posted @ 2011-03-09 13:23 水木 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 首先,我们定义一个被操作的对象的类Cell,在这个类里,有两个方法:ReadFromCell()和WriteToCell。消费者线程将调用ReadFromCell()读取cellContents的内容并且显示出来,生产者进程将调用WriteToCell()方法向cellContents写入数据。 public class Cell { int cellContents; // Cell对象里边的内容 bool readerFlag = false; // 状态标志,为true时可以读取,为false则正在写入 public int ReadFromCell( ) { lock(this) // 阅读全文
posted @ 2011-03-09 13:15 水木 阅读(258) 评论(0) 推荐(0) 编辑
摘要: expression代表你希望跟踪的对象,通常是对象引用。一般地,如果你想保护一个类的实例,你可以使用this;如果你希望保护一个静态变量(如互斥代码段在一个静态方法内部),一般使用类名就可以了。而statement_block就是互斥段的代码,这段代码在一个时刻内只可能被一个线程执行。 下面是一个使用lock关键字的典型例子,我将在注释里向大家说明lock关键字的用法和用途: //lock.cs using System; using System.Threading; internal class Account { int balance; Random r = new Random() 阅读全文
posted @ 2011-03-09 11:42 水木 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 在这里我们要注意的是其它线程都是依附于Main()函数所在的线程的,Main()函数是C#程序的入口,起始线程可以称之为主线程,如果所有的前台线程都停止了,那么主线程可以终止,而所有的后台线程都将无条件终止。而所有的线程虽然在微观上是串行执行的,但是在宏观上你完全可以认为它们在并行执行。 读者一定注意到了Thread.ThreadState这个属性,这个属性代表了线程运行时状态,在不同的情况下有不同的值,于是我们有时候可以通过对该值的判断来设计程序流程。ThreadState在各种情况下的可能取值如下:Aborted:线程已停止 AbortRequested:线程的Thread.Abort() 阅读全文
posted @ 2011-03-09 11:28 水木 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。线程入口使程序知道该让这个线程干什么事,在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。 打开你的VS.net,新建一个控制台应用程序(Console Application),下面这些代码将让你体味到完全控制一个线程的无穷乐趣! //ThreadTest.cs using System; using Syst 阅读全文
posted @ 2011-03-09 11:23 水木 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 注:本文中出现的代码均在.net Framework RC3环境中运行通过 一.多线程的概念 Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是. 阅读全文
posted @ 2011-03-09 11:14 水木 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 宿舍的肥仔每次开机就需要运行多个程序,他希望一个程序实现这些事情,所以写了个程序,大家有什么意见可以给我提出来,我会多加修改,谢谢,贴上源码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Diagnostics;using System.IO;namespace 懒人程序{ public partial 阅读全文
posted @ 2011-03-08 11:18 水木 阅读(683) 评论(0) 推荐(0) 编辑
摘要: /// <summary> /// 开机启动项 /// </summary> /// <param name="Started">是否启动</param> /// <param name="name">启动值的名称</param> /// <param name="path">启动程序的路径&a 阅读全文
posted @ 2011-03-08 10:58 水木 阅读(275) 评论(0) 推荐(0) 编辑
摘要: public static bool SetAutoRun(string keyName,string filePath) { try { RegistryKey runKey=Registry.LocalMachine.OpenSubKey(@"\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true); runKey.SetValue(keyName,filePath); runKey.Close(); } catch { return false; } return true; }test: SetAutoRun(&qu 阅读全文
posted @ 2011-03-08 10:56 水木 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 例如: 12345格式化为12,345.00 12345.6格式化为12,345.60 12345.67格式化为 12,345.67 只留两位小数。 回来后写了个格式化函数。可以控制小数位数,自动四舍五入。 代码如下: 引用function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + ""; var l = s.split(". 阅读全文
posted @ 2011-03-07 11:07 水木 阅读(4712) 评论(1) 推荐(0) 编辑
摘要: DataFormatString属性:{0:Bxx} B为取值类型格式字符 说明 C 以货币格式显示数值。 ({0:C2}¥123,456.78)D 以十进制格式显示数值。 ({0:D5}¥00123)E 以科学记数法(指数)格式显示数值。 F 以固定格式显示数值。 G 以常规格式显示数值。 N 以数字格式显示数值。 X 以十六进制格式显示数值。字符串固定长度显示:str.PadLeft(Int32) str.PadLeft(Int32, Char) OR PadRight int32:totalWidth Char:填补字符默认为空格,可指定如'#'例: float mone 阅读全文
posted @ 2011-03-07 11:03 水木 阅读(402) 评论(0) 推荐(0) 编辑
摘要: Windows Live Messenger 2011,离线安装、多开、去广告……Windows Live Essentials 2011发布之后,我就马上喜欢上了其中的Windows Live Mesh和Windows Live Writer,并成为日常电脑使用的必备工具。但现在看起来,QQ和360的战争还需要持续一阵,为了免于神仙打架自己受到骚扰,只有借用一下Windows Live Messenger……安装的困惑:在线安装太困难,整个离线版吧也有不少的朋友抱着无可奈何的想法,安装Windows Live Essentials,不为Windows Live Writer,也不想Windo 阅读全文
posted @ 2011-03-07 10:20 水木 阅读(3114) 评论(1) 推荐(0) 编辑
摘要: 利用 CSS 框架,可以简化你的工作,提高工作效率。CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版、网格布局、表单样式、通用规则等代码块。下面给你推荐了27款优秀的CSS框架,你可以选用。1. 960gs960 像素的页面宽度似乎成为了一种设计标准,在当前各种分辨率下,能够很好地展现网页内容。提供较为常用的尺寸来简化网页设计过程,使工作简单高效。2. YUI 2: Grids CSS芒果曾经介绍过由雅虎开发小组推出的 YUI,而这个 YUI Grids CSS 正是其中的一部分。作为最著名的 CSS 框架之一,YUI Grids CSS 提供了四种预设页面宽度,六种 阅读全文
posted @ 2011-03-07 09:31 水木 阅读(386) 评论(0) 推荐(0) 编辑
摘要: C#图片处理基本应用(裁剪,缩放,清晰度,水印)前言需求源自项目中的一些应用,比如相册功能,通常用户上传相片后我们都会针对该相片再生成一张缩略图,用于其它页面上的列表显示。随便看一下,大部分网站基本都是将原图等比缩放来生成缩略图。但完美主义者会发现一些问题,比如显示排版时想让相片缩略图列表非常统一、整齐、和美观,比如要求每张缩略图大小固定为120 x 90且不拉伸变形怎么办?再比如用户头像如何让缩略图比原图更清晰?或是如何在上传的图片下加一个半透明的LOGO水印?OK,本文根据自己的项目代码描述以上问题的解决方案,全部基于.Net Framework类库完成,代码中包含了C#图片处理的一些基础 阅读全文
posted @ 2011-03-04 14:11 水木 阅读(770) 评论(2) 推荐(0) 编辑
摘要: 7:30:起床。英国威斯敏斯特大学的研究人员发现,那些在早上5:22―7:21 分起床的人,其血液中有一种能引起心脏病的物质含量较高,因此,在7:21之后起床对身体健康更加有益。打开台灯。“一醒来,就将灯打开,这样将会重新调整体内的生物钟,调整睡眠和醒来模式。”拉夫堡大学睡眠研究中心教授吉姆·霍恩说。喝一杯水。水是身体内成千上万化学反应得以进行的必需物质。早上喝一杯清水,可以补充晚上的缺水状态。 7:30―8:00:在早饭之前刷牙。“在早饭之前刷牙可以防止牙齿的腐蚀,因为刷牙之后,可以在牙齿外面涂上一层含氟的保护层。要么,就等早饭之后半小时再刷牙。”英国牙齿协会健康和安全研究人员戈登 阅读全文
posted @ 2011-03-04 13:11 水木 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 1,取登陆地址 http://passport.cnblogs.com/login.aspx?ReturnUrl=http%3a%2f%2fwww.cnblogs.com%2fhsapphire%2fadmin%2fEditPosts.aspx%3fopt%3d1 2,登陆方式为Post提交,提交后接收到一个Cookie值。 并查看取得提交后的页面,看是否登陆成功。如下图已经保存成HTML 表示已经登陆成功,下面开始进行发贴的分析 3.找到发贴页面地址: http://www.cnblogs.com/hsapphire/admin/EditPosts.aspx?opt=1 查看提交的post数 阅读全文
posted @ 2011-03-04 11:28 水木 阅读(2031) 评论(9) 推荐(0) 编辑
摘要: 1,取登陆地址http://passport.cnblogs.com/login.aspx?ReturnUrl=http%3a%2f%2fwww.cnblogs.com%2fhsapphire%2fadmin%2fEditPosts.aspx%3fopt%3d12,登陆方式为Post提交,提交后接收到一个Cookie值。并查看取得提交后的页面,看是否登陆成功。如下图已经保存成HTML表示已经登陆成功,下面开始进行发贴的分析3.找到发贴页面地址:http://www.cnblogs.com/hsapphire/admin/EditPosts.aspx?opt=1查看提交的post数据:如图再记得 阅读全文
posted @ 2011-03-04 11:25 水木 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 发现21cn邮箱存在严重的安全漏洞及风险,对于申请密保的邮箱可以随便更改任意用户的密码 阅读全文
posted @ 2011-03-03 11:13 水木 阅读(5645) 评论(21) 推荐(2) 编辑
摘要: Acronis Disk Director Suite是目前唯一的一款完美支持7的Windows下的无损分区软件,大家熟悉的PartitionMagic无法读取win7特殊的3+1分区方式,无法使用。而win7本身的磁盘管理软件有很大的局限性,无法充分利用可分配空间,故不推荐。它兼容各种分区格式,包括win7的特殊分区格式,笔记本厂商制作的隐藏恢复分区!比 PartitionMagic 要好很多!... 阅读全文
posted @ 2011-02-23 10:58 水木 阅读(676) 评论(0) 推荐(1) 编辑
摘要: nginx 的upstream目前支持4种方式的分配 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器 ,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。  例如:     upstream bakend {          server 192.168.0.14 weight=10;    ... 阅读全文
posted @ 2011-01-26 17:08 水木 阅读(2190) 评论(0) 推荐(0) 编辑
摘要:   1、研究说明 Tencent在tqq.tencent.com的8000有一个使用HTTP的QQ接口,通过这个接口,可以进行一些基本的操作,如:登陆、登出、改变登陆状态(上线、忙碌、离线、隐身)、添加删除好友、查看好友信息、发送验证信息(接受被加为好友、申请加对方为好友、拒绝被加为好友)、收发用户消息、系统信息。 目前我研究的是1.1版本的HTTP QQ协议,研究是微程在的成果上进行的,不敢说... 阅读全文
posted @ 2011-01-19 10:50 水木 阅读(1411) 评论(0) 推荐(0) 编辑
摘要: PHP导出QQ好友列表搞定,兴奋中。。。 2009年08月23日 星期日 07:29 从昨天晚上开始搞,搞了一个通宵,终于搞定。 昨晚,想了一下我们游戏如果能够通过QQ好友进行推广,是不是可以省去不少广告费那? 先不管这么多,自己到网上搜索了一下腾讯的协议,基本上都是1年前的老帖子了 大部分都已经失效,不能用了,腾讯的协议修改太快了。 但是网上我发现有人用QQ邮箱导出联系人的方法,这个... 阅读全文
posted @ 2011-01-19 09:46 水木 阅读(1950) 评论(1) 推荐(0) 编辑
摘要:   !--[endif]-- 目前有很多的SNS社区或类SNS的网站,例如开心、51、校内等,但是发现大多数社区在邀请好友的时候都没有提供对QQ邮箱或者QQ空间好友列表获取的功能,不过似乎海内支持,但是网上相关QQ的文章还不是很多,希望这篇文章能给你带来一些帮助。 QQ空间及邮箱登陆的校验方式: QQ空间及邮箱登陆的时候,用户输入的密码首先会被页面中的一段Js加密,然后加密过后的密码会加... 阅读全文
posted @ 2011-01-10 13:30 水木 阅读(649) 评论(0) 推荐(1) 编辑
摘要: 一、验证码简介 验证码功能一般是用于防止批量注册的,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。所谓验证码,就是将一串随机产生的数字或字母或符号或文字,生成一幅图片, 图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。 常见的验证码有如下几种: 1、纯数字验证码,一般为四位随机数字; 2、数字+字母验... 阅读全文
posted @ 2011-01-07 17:35 水木 阅读(11040) 评论(0) 推荐(1) 编辑
摘要:   来源:转载 作者:佚名 时间:2008-09-15 09:31:25 分享到:     ==Ph4nt0m Security Team==                       Issue 0x02, Phile #0x09 of 0x0A |=----------------------------------------------------------------------... 阅读全文
posted @ 2011-01-07 14:26 水木 阅读(6334) 评论(0) 推荐(0) 编辑
摘要: 一、验证码的基本知识 1. 验证码的主要目的是强制人机交互来抵御机器自动化攻击的。 2. 大部分的验证码设计者并不得要领,不了解图像处理,机器视觉,模式识别,人工智能的基本概念。 3. 利用验证码,可以发财,当然要犯罪:比如招商银行密码只有6位,验证码形同虚设,计算机很快就能破解一个有钱的账户,很多帐户是可以网上交易的。 4. 也有设计的比较好的,比如Yahoo,Google,Microso... 阅读全文
posted @ 2011-01-07 13:35 水木 阅读(7084) 评论(0) 推荐(0) 编辑
摘要: 图像的灰度化、二值化和反色是些较简单的图像像素处理过程,我在《GDI+ 在Delphi程序的应用 -- ColorMatrix与图像灰度化》和《GDI+ 在Delphi程序的应用 -- 图像二值化》二篇文章中讲了如何利用GDI+的ColorMatrix实现图像灰度化和二值化,但是那种处理只适合GDI+的图像类,本文的方法同时适用于GDI+图像和Delphi的TGraphic图像。     灰度化... 阅读全文
posted @ 2011-01-07 13:34 水木 阅读(3344) 评论(0) 推荐(0) 编辑
摘要: CAPTCHA 和 break CAPTCHA,这永远是一个turing test的命题。 CAPTCHA 和 break CAPTCHA双方都在竞赛, Captcha方: •Captcha项目: http://www.captcha.net/ •jCaptcha项目:http://jcaptcha.sourceforge.net/ Break Captcha方 •http://www.cs.... 阅读全文
posted @ 2011-01-07 13:17 水木 阅读(3992) 评论(0) 推荐(0) 编辑
摘要: fedora linux 下安装pwntcha 关键字: 验证码破解 安装步骤: 1.先执行 yum install SDL_image* imlib2-devel opencv* subversion 2.svn co svn://svn.zoy.org/caca/pwntcha/trunk pwntcha 3.执行 ./bootstrap 4. ./configure 5. make 6. m... 阅读全文
posted @ 2011-01-07 11:40 水木 阅读(839) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 28 下一页