<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_我的博客</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/24261/rss</id><updated>2008-03-30T07:16:23Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/24261/rss"/><entry><id>http://www.cnblogs.com/ghostljj/archive/2008/02/17/1071316.html</id><title type="text">C #中的几个线程同步对象方法</title><summary type="text">在编写多线程程序时无可避免会遇到线程的同步问题。什么是线程的同步呢？ 举个例子：如果在一个公司里面有一个变量记录某人T的工资count=100，有两个主管A和B（即工作线程）在早一些时候拿了这个变量的值回去 ，过了一段时间A主管将T的工资加了5块，并存回count变量，而B主管将T的工资减去3块，并存回count变量。好了，本来T君可以得到102块的工资的，现在就变成98块了。这就是线程同步要解决...</summary><published>2008-02-17T07:38:00Z</published><updated>2008-02-17T07:38:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2008/02/17/1071316.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2008/02/17/1071316.html"/><content type="text">在编写多线程程序时无可避免会遇到线程的同步问题。什么是线程的同步呢？ 举个例子：如果在一个公司里面有一个变量记录某人T的工资count=100，有两个主管A和B（即工作线程）在早一些时候拿了这个变量的值回去 ，过了一段时间A主管将T的工资加了5块，并存回count变量，而B主管将T的工资减去3块，并存回count变量。好了，本来T君可以得到102块的工资的，现在就变成98块了。这就是线程同步要解决...</content></entry><entry><id>http://www.cnblogs.com/ghostljj/archive/2007/11/07/951969.html</id><title type="text">C#对称加密</title><summary type="text">/// &lt;summary&gt; /// 对称加密算法类，使用系统自带的函数 /// &lt;/summary&gt; public class SymmetricMethod { private SymmetricAlgorithm mobjCryptoService; private string Key; /// &lt;summary&gt; /// 对称加密类的构造函数 /// &amp;...</summary><published>2007-11-07T03:53:00Z</published><updated>2007-11-07T03:53:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2007/11/07/951969.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2007/11/07/951969.html"/><content type="text">/// &lt;summary&gt; /// 对称加密算法类，使用系统自带的函数 /// &lt;/summary&gt; public class SymmetricMethod { private SymmetricAlgorithm mobjCryptoService; private string Key; /// &lt;summary&gt; /// 对称加密类的构造函数 /// &amp;...</content></entry><entry><id>http://www.cnblogs.com/ghostljj/archive/2007/10/27/939654.html</id><title type="text">C#获取cpu序列号,硬盘ID,网卡MAC地址</title><summary type="text">首先在添加引用中选中System.Management再在开始部门：using System.Management;using System.Management.Instrumentation;private void GetInfo(){ string cpuInfo = "";//cpu序列号 ManagementClass cimobject = new ManagementClass("...</summary><published>2007-10-27T07:22:00Z</published><updated>2007-10-27T07:22:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2007/10/27/939654.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2007/10/27/939654.html"/><content type="text">首先在添加引用中选中System.Management再在开始部门：using System.Management;using System.Management.Instrumentation;private void GetInfo(){ string cpuInfo = "";//cpu序列号 ManagementClass cimobject = new ManagementClass("...</content></entry><entry><id>http://www.cnblogs.com/ghostljj/archive/2007/10/11/920268.html</id><title type="text">多线程操作控件C#</title><summary type="text">不要在创建控件以外的线程操作控件，Net 2.0已经把这个作为异常了。可以使用Control的Invoke方法，将操作放到UI线程上。 一个简单的例子 private void Form1_Load(object sender, System.EventArgs e) { System.Threading.Thread tNew = new System.Threading.T...</summary><published>2007-10-10T17:26:00Z</published><updated>2007-10-10T17:26:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2007/10/11/920268.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2007/10/11/920268.html"/><content type="text">不要在创建控件以外的线程操作控件，Net 2.0已经把这个作为异常了。可以使用Control的Invoke方法，将操作放到UI线程上。 一个简单的例子 private void Form1_Load(object sender, System.EventArgs e) { System.Threading.Thread tNew = new System.Threading.T...</content></entry><entry><id>http://www.cnblogs.com/ghostljj/archive/2007/10/09/918451.html</id><title type="text">验证码识别技术</title><summary type="text">模拟精灵是首个公开最有效的验证码识别技术的软件，使用模拟精灵制作了大量的免费、商用群发软件，对很多复杂BT的验证码都能成功的识别。但是验证码仍然需要精湛的技术与足够的耐心。请牢记这一点。验证码识别不适合浮躁的人去做。验证码识别是一项特殊的技术，任何一个公开的验证码识别代码都会很快的失效。因为代码的公开后相关网站都会很快的更改验证码。所以下面我只会介绍其原理。在这里讨论验证码识别技术纯粹基于技术研究...</summary><published>2007-10-09T10:17:00Z</published><updated>2007-10-09T10:17:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2007/10/09/918451.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2007/10/09/918451.html"/><content type="text">模拟精灵是首个公开最有效的验证码识别技术的软件，使用模拟精灵制作了大量的免费、商用群发软件，对很多复杂BT的验证码都能成功的识别。但是验证码仍然需要精湛的技术与足够的耐心。请牢记这一点。验证码识别不适合浮躁的人去做。验证码识别是一项特殊的技术，任何一个公开的验证码识别代码都会很快的失效。因为代码的公开后相关网站都会很快的更改验证码。所以下面我只会介绍其原理。在这里讨论验证码识别技术纯粹基于技术研究...</content></entry><entry><id>http://www.cnblogs.com/ghostljj/archive/2007/10/09/917993.html</id><title type="text">网上几种常见校验码图片分析</title><summary type="text">前几天受刺激了，准备把CSDN的校验码图片修改。就上网找了一些参考示例。和分析了一些校验码的功能。不敢独享，整理到一起，跟大家分享。至于CSDN新的校验码写法，不是这里面的任何一种。也不是网上可以找到的。这个不好公开，如果想研究校验码图片，建议研究我这里给的几个推荐链接。一些常见的验证码效果图： 功能分析：一般校验码具有的功能：1、显示内容显示内容一般是数字或者数字+字符，还有更变态的，显示的内容...</summary><published>2007-10-09T05:16:00Z</published><updated>2007-10-09T05:16:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2007/10/09/917993.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2007/10/09/917993.html"/><content type="text">前几天受刺激了，准备把CSDN的校验码图片修改。就上网找了一些参考示例。和分析了一些校验码的功能。不敢独享，整理到一起，跟大家分享。至于CSDN新的校验码写法，不是这里面的任何一种。也不是网上可以找到的。这个不好公开，如果想研究校验码图片，建议研究我这里给的几个推荐链接。一些常见的验证码效果图： 功能分析：一般校验码具有的功能：1、显示内容显示内容一般是数字或者数字+字符，还有更变态的，显示的内容...</content></entry><entry><id>http://www.cnblogs.com/ghostljj/archive/2007/10/09/917781.html</id><title type="text">破解图片验证码限制的一般思路</title><summary type="text">相信大家都有在论坛灌水的经历吧？但是如果你连续发表统一内容的东西在论坛中，不久论坛的整个板块就全是你发表的信息了，其他信息全被挤在了后面。假设你发表的信息够多，版主都删不完时，那么这个论坛基本就报废了！其他的商业论坛也意识到了防止恶意灌水的重要性，纷纷使用了一些防止恶意灌水的措施，有发贴间隔时间的限制、同一IP地址的发贴数限制、内容不能重复等，但是这些都不是今天的重点，由于论坛使用的是一个公用发贴...</summary><published>2007-10-09T01:52:00Z</published><updated>2007-10-09T01:52:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2007/10/09/917781.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2007/10/09/917781.html"/><content type="text">相信大家都有在论坛灌水的经历吧？但是如果你连续发表统一内容的东西在论坛中，不久论坛的整个板块就全是你发表的信息了，其他信息全被挤在了后面。假设你发表的信息够多，版主都删不完时，那么这个论坛基本就报废了！其他的商业论坛也意识到了防止恶意灌水的重要性，纷纷使用了一些防止恶意灌水的措施，有发贴间隔时间的限制、同一IP地址的发贴数限制、内容不能重复等，但是这些都不是今天的重点，由于论坛使用的是一个公用发贴...</content></entry><entry><id>http://www.cnblogs.com/ghostljj/archive/2007/10/06/915086.html</id><title type="text">Dotnet终极压缩</title><summary type="text">其实是没有什么是终极的，一个抓眼球的标题而已。CLR2.0里带来很多新东东，其中System.IO.Compression就是一个新的命名空间，里面包括两个类GzipStream和DeflaterStream，它们都可以用于解压缩，但是不支持ZIP、RAR等常用的压缩文件，RAR是涉及到专利的问题，而ZIP虽然格式是公开的，但是我想微软不太想支持，它可能更想大家用它自家的私房菜CAB格式，可是Do...</summary><published>2007-10-05T17:37:00Z</published><updated>2007-10-05T17:37:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2007/10/06/915086.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2007/10/06/915086.html"/><content type="text">其实是没有什么是终极的，一个抓眼球的标题而已。CLR2.0里带来很多新东东，其中System.IO.Compression就是一个新的命名空间，里面包括两个类GzipStream和DeflaterStream，它们都可以用于解压缩，但是不支持ZIP、RAR等常用的压缩文件，RAR是涉及到专利的问题，而ZIP虽然格式是公开的，但是我想微软不太想支持，它可能更想大家用它自家的私房菜CAB格式，可是Do...</content></entry><entry><id>http://www.cnblogs.com/ghostljj/archive/2007/10/05/914423.html</id><title type="text">DataGridView重绘代码参考--C#</title><summary type="text">1、CellFormatting事件，一般重绘单元格属性。 private Bitmap highPriImage; private Bitmap mediumPriImage; private Bitmap lowPriImage;private void dataGridView1_CellFormatting(object sender, System.Windows.Forms.Data...</summary><published>2007-10-04T19:46:00Z</published><updated>2007-10-04T19:46:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2007/10/05/914423.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2007/10/05/914423.html"/><content type="text">1、CellFormatting事件，一般重绘单元格属性。 private Bitmap highPriImage; private Bitmap mediumPriImage; private Bitmap lowPriImage;private void dataGridView1_CellFormatting(object sender, System.Windows.Forms.Data...</content></entry><entry><id>http://www.cnblogs.com/ghostljj/archive/2007/10/04/914205.html</id><title type="text">DataGridView右键选中某单元格-C#</title><summary type="text">//添加下面事件即可private void DataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex &gt;= 0) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { this.Rows[e.Ro...</summary><published>2007-10-04T11:09:00Z</published><updated>2007-10-04T11:09:00Z</updated><author><name>Jackey</name><uri>http://www.cnblogs.com/ghostljj/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ghostljj/archive/2007/10/04/914205.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ghostljj/archive/2007/10/04/914205.html"/><content type="text">//添加下面事件即可private void DataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex &gt;= 0) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { this.Rows[e.Ro...</content></entry></feed>
