﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-韩全磊的技术博客</title><link>http://www.cnblogs.com/antistone/</link><description>深度来自坚持与专注</description><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 00:46:17 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 00:46:17 GMT</pubDate><ttl>60</ttl><item><title>Sybase ASE ADO.NET驱动 乱码问题解决</title><link>http://www.cnblogs.com/antistone/archive/2008/05/20/1203593.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Tue, 20 May 2008 12:49:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2008/05/20/1203593.html</guid><description><![CDATA[<p>阅读: 393 评论: 0 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2008-05-20 20:49 <a href="http://www.cnblogs.com/antistone/archive/2008/05/20/1203593.html" target="_blank">原文链接</a></p><p>　　<br />
　　用Sybase的Ado.NET驱动进行数据库连接的时候，有时候会出现中文乱码的情况。而OLEDB的驱动就一点问题都没有。可见Ado.NET的驱动还需要进一步完善啊..<br />
　　Sybase的默认的安装字符集选了ISO_1,结果装好数据库以后,发现在SQL Advantage里面执行SELECT语句,查询的结果里面中文内容正常!用c#写的代码读出的中文内容,乱码。<br />
　　通过查资料，得到的解决办法就是:安装CP936字符集!</p>
<p>　　处理步骤:&nbsp; (假设安装目录是c:\sybase)</p>
<p>　　１：cmd命令行状态下:&nbsp;&nbsp; <br />
<font size="2">　　　1.　c:\&gt;cd \sybase\charsets\cp936 <br />
　　　2.　c:\sybase\charsets\cp936&gt; charset -Usa -P -S binary.srt cp936&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<p><font size="2">&nbsp;　　２：在SQL Advantage中 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&gt;select id from syscharsets where name='cp936'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&gt;go&nbsp;<br />
　　　　把选择出来的id（我得出来的是171，网上好多人得到的也是171，如果你的不是171，就用你选择出来的值）然后：<br />
　　　　1&gt;sp_configure "default character set id",171 </font></p>
<p><font size="2">&nbsp;　　３：重启Sybase服务器。需要重启两次。第一次重启后会直接停止，需要启动第二次。</font><font size="2">或者:重新启动机器。</font>&nbsp;<br />
　　 经过这些设定以后，乱码问题就解决了。 </p>
<img src="http://www.cnblogs.com/antistone/aggbug/1203593.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/antistone/archive/2008/05/20/1203593.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2008/05/20/1203593.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>C#开发Windows服务入门摘要</title><link>http://www.cnblogs.com/antistone/archive/2008/05/10/1191425.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Sat, 10 May 2008 09:42:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2008/05/10/1191425.html</guid><description><![CDATA[<p>阅读: 126 评论: 0 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2008-05-10 17:42 <a href="http://www.cnblogs.com/antistone/archive/2008/05/10/1191425.html" target="_blank">原文链接</a></p>参考:<a href="http://www.taiwanren.com/blog/article.asp?id=8686">http://www.taiwanren.com/blog/article.asp?id=8686</a><br />
<br />
1. 用VS建立一个 Windows Service 类型(中文版为Windows服务)的项目,建立完成后的项目目录类似于:<img height="124" alt="" src="http://www.cnblogs.com/images/cnblogs_com/antistone/1.jpg" width="254" border="0" /><br />
2.切换到Services1.cs的设计界面, 并打开其属性选项卡:<br />
<img height="297" alt="" src="http://www.cnblogs.com/images/cnblogs_com/antistone/2.jpg" width="291" border="0" /><br />
<br />
3. 点击属性页上的添加安装程序链接,具体介绍在参考的文章里写的很详细:"之后,你将获得两个文件Service组件和Program.cs.我们要建立服务的话,首先需要添加专用的安装组件,这步同样很简单,选择服务组件,并切换到设计模式,右键-&gt;Add Installer,生成了了安装文件,切换到设计模式,这里你将看到两个组件:ServiceInstaller和ProcessInstaller,这里没有太多需要说明的,大部分是对服务的名称,描述等信息的设置,只有2个地方需要注意下.一个是StartType,有三种选择自动,手动,禁用.如果想要自动启动，那么遍选择Automatic即可.另一个需要注意的属性是Account,选择用户,一般情况下，我们选择Local System即可."<br />
<br />
4. 书写自己的业务逻辑代码<br />
5. 编译生成程序并进行服务安装. 此处文章给出了一个较好的生成脚本(YourServiceName为你自己服务的名称):<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span>&nbsp;<span style="color: #000000">net&nbsp;stop&nbsp;YourServiceName<br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #000000">copy&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">y&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">$(TargetDir)</span><span style="color: #800000">"</span><span style="color: #000000">　</span><span style="color: #800000">"</span><span style="color: #800000">$(ProjectDir)bin</span><span style="color: #800000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #800000">"</span><span style="color: #800000">%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">u&nbsp;$(ProjectDir)bin\$(TargetFileName)<br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #800000">"</span><span style="color: #800000">%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;&nbsp;$(ProjectDir)bin\$(TargetFileName)<br />
</span><span style="color: #008080">5</span>&nbsp;<span style="color: #000000">net&nbsp;start&nbsp;YourServiceName<br />
</span><span style="color: #008080">6</span>&nbsp;</div>
<br />
6. 调试. 服务的调试非常的麻烦,网上有很多文章,通过VisualStudio的调试中的"进程附加" 应该可以满足大多数的要求. 如果要调试OnStart和OnStop方法, 需要一些其他的手段,在此不作介绍(我也没弄懂)。<br />
<br />
<br />
 <img src="http://www.cnblogs.com/antistone/aggbug/1191425.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/antistone/archive/2008/05/10/1191425.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2008/05/10/1191425.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>WinForm中使用Log4NET</title><link>http://www.cnblogs.com/antistone/archive/2008/05/03/1180284.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Sat, 03 May 2008 06:28:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2008/05/03/1180284.html</guid><description><![CDATA[<p>阅读: 280 评论: 0 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2008-05-03 14:28 <a href="http://www.cnblogs.com/antistone/archive/2008/05/03/1180284.html" target="_blank">原文链接</a></p><p>首先下载Log4NET (废话...)<br />
1. 添加log4net引用 <br />
2. 在WinForm程序下新建一个配置文件, 默认是App.config,更改如下:<br />
<span style="color: #ff0000">　　3--20行是新添加的部分</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Code_Closed_Image_141332" onclick="this.style.display='none'; Code_Closed_Text_141332.style.display='none'; Code_Open_Image_141332.style.display='inline'; Code_Open_Text_141332.style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"  alt="" /><img id="Code_Open_Image_141332" style="display: none" onclick="this.style.display='none'; Code_Open_Text_141332.style.display='none'; Code_Closed_Image_141332.style.display='inline'; Code_Closed_Text_141332.style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"  alt="" /><span id="Code_Closed_Text_141332" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">配置文件</span><span id="Code_Open_Text_141332" style="display: none"><br />
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"&nbsp;</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">configuration</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">configSections</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">section&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="log4net"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="log4net.Config.Log4NetConfigurationSectionHandler,log4net"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">configSections</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">log4net</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">root</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">level&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="ALL"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">appender-ref&nbsp;</span><span style="color: #ff0000">ref</span><span style="color: #0000ff">="LogFileAppender"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">root</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">appender&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="LogFileAppender"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="log4net.Appender.FileAppender"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="File"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="log-file.txt"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="AppendToFile"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">layout&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="log4net.Layout.PatternLayout"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="ConversionPattern"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="%d&nbsp;[%t]&nbsp;%-5p&nbsp;%c&nbsp;[%x]&nbsp;&amp;lt;%X{auth}&amp;gt;%n&nbsp;-&nbsp;%m%n"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">layout</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">appender</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">log4net</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">configuration</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></div>
<br />
<br />
3. 添加完以后,在AssemblyInfo.cs中添加如下
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">[assembly:&nbsp;log4net.Config.DOMConfigurator(ConfigFileExtension&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">config</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;Watch&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">)]&nbsp;</span></div>
<br />
<br />
4. 然后在程序中用如下方法添加日志(我直接写在了Main函数中测试):<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main()<br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img id="Codehighlighter1_19_107_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_107_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_19_107_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_107_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_19_107_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_19_107_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_19_107_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_19_107_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_19_107_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_19_107_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;log4net.ILog&nbsp;log&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;log4net.LogManager.GetLogger(</span><span style="color: #800000">"</span><span style="color: #800000">test</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;log.Debug(</span><span style="color: #800000">"</span><span style="color: #800000">test</span><span style="color: #800000">"</span><span style="color: #000000">);&nbsp;<br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<br />
5. 调试运行,在项目的Debug目录下生成如下日志文件<font face="Verdana">log-file.txt</font>,内容如下:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span>&nbsp;<span style="color: #800080">2008</span><span style="color: #000000">-</span><span style="color: #800080">05</span><span style="color: #000000">-</span><span style="color: #800080">03</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">14</span><span style="color: #000000">:</span><span style="color: #800080">02</span><span style="color: #000000">:</span><span style="color: #800080">38</span><span style="color: #000000">,</span><span style="color: #800080">890</span><span style="color: #000000">&nbsp;[</span><span style="color: #800080">11</span><span style="color: #000000">]&nbsp;DEBUG&nbsp;test&nbsp;[(</span><span style="color: #0000ff">null</span><span style="color: #000000">)]&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">(</span><span style="color: #0000ff">null</span><span style="color: #000000">)</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;test</span></div>
<br />
这样就可以在程序中使用Log4Net进行日志记录了。当然这个只是让Log4Net运行的一个Helloworld级别的示例，具体的使用可以参见Log4Net的官方文档。也有一些中文的介绍资料，如<a title="http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html" href="http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html">http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html</a>&nbsp; (我这篇随笔就是参考这篇文章以及作者的回复写出来点 :) )<br />
Enjoy Log4Net!
<img src="http://www.cnblogs.com/antistone/aggbug/1180284.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/antistone/archive/2008/05/03/1180284.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2008/05/03/1180284.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>C# 中用信号量实现读者写者问题</title><link>http://www.cnblogs.com/antistone/archive/2008/04/14/1153474.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Mon, 14 Apr 2008 15:08:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2008/04/14/1153474.html</guid><description><![CDATA[<p>阅读: 505 评论: 1 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2008-04-14 23:08 <a href="http://www.cnblogs.com/antistone/archive/2008/04/14/1153474.html" target="_blank">原文链接</a></p>在做视频分析时,需要对视频进行解码,还原为位图帧,然后对位图帧逐帧处理。拟用双线程来做。线程A进行解码，线程B进行处理。中间用一个缓冲作为两个线程间通信的渠道。典型的读者写者问题。以前没具体接触过多线程的问题，当年操作系统讲的东西也已经忘的差不多了。翻了翻课本，写出了下面一个实现。<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><img id="Code_Closed_Image_230702" onclick="this.style.display='none'; Code_Closed_Text_230702.style.display='none'; Code_Open_Image_230702.style.display='inline'; Code_Open_Text_230702.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" align="top" height="16" width="11" /><img id="Code_Open_Image_230702" style="display: none;" onclick="this.style.display='none'; Code_Open_Text_230702.style.display='none'; Code_Closed_Image_230702.style.display='inline'; Code_Closed_Text_230702.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" align="top" height="16" width="11" /><span id="Code_Closed_Text_230702" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255);">读者写者实现代码</span><span id="Code_Open_Text_230702" style="display: none;"><br />
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);">&nbsp;System;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;2</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);">&nbsp;System.Collections;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;3</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);">&nbsp;System.Collections.Generic;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;4</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);">&nbsp;System.Threading;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;5</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;6</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 255);">namespace</span><span style="color: rgb(0, 0, 0);">&nbsp;LearnSemaphore<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;7</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_124_2749_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_124_2749_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_124_2749_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_124_2749_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_124_2749_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_124_2749_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_124_2749_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_124_2749_Open_Text').style.display='inline';" alt="" align="top" /></span><span id="Codehighlighter1_124_2749_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_124_2749_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;8</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_130_179_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_130_179_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_130_179_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_130_179_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_130_179_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_130_179_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_130_179_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_130_179_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_130_179_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;">/**/</span><span id="Codehighlighter1_130_179_Open_Text"><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;9</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;封装三个信号量<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;10</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;/summary&gt;</span></span><br />
<span style="color: rgb(0, 128, 128);">&nbsp;11</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Signle<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;12</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_200_877_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_200_877_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_200_877_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_200_877_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_200_877_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_200_877_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_200_877_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_200_877_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_200_877_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_200_877_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;13</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_210_308_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_210_308_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_210_308_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_210_308_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_210_308_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_210_308_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_210_308_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_210_308_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_210_308_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;">/**/</span><span id="Codehighlighter1_210_308_Open_Text"><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;14</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;Reader和Writer之间的互斥&nbsp;，貌似好像可以用Mutex类实现。我这里用的是一个信号量。<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;15</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;/summary&gt;</span></span><br />
<span style="color: rgb(0, 128, 128);">&nbsp;16</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;Semaphore&nbsp;mutex;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;17</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_348_405_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_348_405_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_348_405_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_348_405_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_348_405_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_348_405_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_348_405_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_348_405_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_348_405_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;">/**/</span><span id="Codehighlighter1_348_405_Open_Text"><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;18</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;申请写的信号量<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;19</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;/summary&gt;</span></span><br />
<span style="color: rgb(0, 128, 128);">&nbsp;20</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;Semaphore&nbsp;writer;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;21</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_446_504_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_446_504_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_446_504_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_446_504_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_446_504_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_446_504_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_446_504_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_446_504_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_446_504_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;">/**/</span><span id="Codehighlighter1_446_504_Open_Text"><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;22</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;申请读的信号量，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;23</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;/summary&gt;</span></span><br />
<span style="color: rgb(0, 128, 128);">&nbsp;24</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;Semaphore&nbsp;reader;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;25</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;26</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_546_654_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_546_654_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_546_654_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_546_654_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_546_654_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_546_654_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_546_654_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_546_654_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_546_654_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;">/**/</span><span id="Codehighlighter1_546_654_Open_Text"><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;27</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;Signle的构造函数<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;28</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;/summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;29</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;param&nbsp;name="size"&gt;</span><span style="color: rgb(0, 128, 0);">读写缓冲区大小</span><span style="color: rgb(128, 128, 128);">&lt;/param&gt;</span></span><br />
<span style="color: rgb(0, 128, 128);">&nbsp;30</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;Signle(</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&nbsp;size)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;31</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_694_871_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_694_871_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_694_871_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_694_871_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_694_871_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_694_871_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_694_871_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_694_871_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_694_871_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_694_871_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;32</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mutex&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Semaphore(</span><span style="color: rgb(128, 0, 128);">1</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(128, 0, 128);">1</span><span style="color: rgb(0, 0, 0);">);<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;33</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Semaphore(</span><span style="color: rgb(128, 0, 128);">0</span><span style="color: rgb(0, 0, 0);">,&nbsp;size);&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">Reader&nbsp;0个可读</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;34</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Semaphore(size,&nbsp;size);&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">Writer&nbsp;size&nbsp;个可写</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;35</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;36</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;37</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Program<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;38</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_900_1321_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_900_1321_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_900_1321_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_900_1321_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_900_1321_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_900_1321_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_900_1321_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_900_1321_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_900_1321_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_900_1321_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;39</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Main(</span><span style="color: rgb(0, 0, 255);">string</span><span style="color: rgb(0, 0, 0);">[]&nbsp;args)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;40</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_957_1315_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_957_1315_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_957_1315_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_957_1315_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_957_1315_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_957_1315_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_957_1315_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_957_1315_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_957_1315_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_957_1315_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;41</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">信号</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;42</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Signle&nbsp;s&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Signle(</span><span style="color: rgb(128, 0, 128);">10</span><span style="color: rgb(0, 0, 0);">);<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;43</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">数据缓冲区</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;44</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Queue</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;que&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Queue</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(128, 0, 128);">10</span><span style="color: rgb(0, 0, 0);">);<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;45</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;46</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">开启一个读者和一个写者线程</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;47</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;t1&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Thread((</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Writer(s,&nbsp;que)).Process);<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;48</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;t2&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Thread((</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Reader(s,&nbsp;que)).Process);<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;49</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t1.Start();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;50</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t2.Start();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;51</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;52</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;53</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;54</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_1327_1371_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1327_1371_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1327_1371_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1327_1371_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_1327_1371_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1327_1371_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1327_1371_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1327_1371_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1327_1371_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;">/**/</span><span id="Codehighlighter1_1327_1371_Open_Text"><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;55</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;读者<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;56</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;/summary&gt;</span></span><br />
<span style="color: rgb(0, 128, 128);">&nbsp;57</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Reader<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;58</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_1392_1993_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1392_1993_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1392_1993_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1392_1993_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_1392_1993_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1392_1993_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1392_1993_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1392_1993_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1392_1993_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1392_1993_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;59</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">保存信号和缓冲区的引用</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;60</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Signle&nbsp;signle;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;61</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Queue</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;queue;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;62</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;63</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;Reader(Signle&nbsp;s,&nbsp;Queue</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;que)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;64</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_1538_1598_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1538_1598_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1538_1598_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1538_1598_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_1538_1598_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1538_1598_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1538_1598_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1538_1598_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1538_1598_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1538_1598_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;65</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;s;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;66</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;que;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;67</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;68</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;69</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_1608_1662_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1608_1662_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1608_1662_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1608_1662_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_1608_1662_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1608_1662_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1608_1662_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1608_1662_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1608_1662_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;">/**/</span><span id="Codehighlighter1_1608_1662_Open_Text"><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;70</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;处理函数<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;71</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;/summary&gt;</span></span><br />
<span style="color: rgb(0, 128, 128);">&nbsp;72</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Process()<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;73</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_1700_1987_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1700_1987_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1700_1987_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1700_1987_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_1700_1987_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1700_1987_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1700_1987_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1700_1987_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1700_1987_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1700_1987_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;74</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);">&nbsp;(</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;75</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_1739_1977_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1739_1977_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1739_1977_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1739_1977_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_1739_1977_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1739_1977_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1739_1977_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1739_1977_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1739_1977_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1739_1977_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;76</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle.reader.WaitOne();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;77</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle.mutex.WaitOne();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;78</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Write(</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">Read:{0}&nbsp;</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;queue.Dequeue());<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;79</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle.mutex.Release();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;80</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle.writer.Release();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;81</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;82</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;83</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;84</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;85</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_1999_2047_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1999_2047_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1999_2047_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1999_2047_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_1999_2047_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1999_2047_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1999_2047_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1999_2047_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1999_2047_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;">/**/</span><span id="Codehighlighter1_1999_2047_Open_Text"><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;86</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;Writer<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;87</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;/summary&gt;</span></span><br />
<span style="color: rgb(0, 128, 128);">&nbsp;88</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Writer<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;89</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_2068_2747_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2068_2747_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2068_2747_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2068_2747_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_2068_2747_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2068_2747_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2068_2747_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2068_2747_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2068_2747_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_2068_2747_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;90</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Signle&nbsp;signle;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;91</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Queue</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;queue;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;92</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;93</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;Writer(Signle&nbsp;s,&nbsp;Queue</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;que)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;94</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_2184_2244_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2184_2244_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2184_2244_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2184_2244_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_2184_2244_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2184_2244_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2184_2244_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2184_2244_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2184_2244_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_2184_2244_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;95</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;s;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;96</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;que;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;97</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;98</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;99</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_2254_2308_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2254_2308_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2254_2308_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2254_2308_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_2254_2308_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2254_2308_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2254_2308_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2254_2308_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2254_2308_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;">/**/</span><span id="Codehighlighter1_2254_2308_Open_Text"><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;summary&gt;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">100</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;处理函数<br />
</span><span style="color: rgb(0, 128, 128);">101</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(128, 128, 128);">///</span><span style="color: rgb(0, 128, 0);">&nbsp;</span><span style="color: rgb(128, 128, 128);">&lt;/summary&gt;</span></span><br />
<span style="color: rgb(0, 128, 128);">102</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;Process()<br />
</span><span style="color: rgb(0, 128, 128);">103</span><span style="color: rgb(0, 0, 0);"><img id="Codehighlighter1_2346_2741_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2346_2741_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2346_2741_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2346_2741_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_2346_2741_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2346_2741_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2346_2741_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2346_2741_Open_Text').style.display='inline';" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2346_2741_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_2346_2741_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">104</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&nbsp;ix&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 0, 128);">10</span><span style="color: rgb(0, 0, 0);">;<br />
</span><span style="color: rgb(0, 128, 128);">105</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);">&nbsp;(ix&nbsp;</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 0, 128);">100</span><span style="color: rgb(0, 0, 0);">)&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">测试用的<br />
</span><span style="color: rgb(0, 128, 128);">106</span><span style="color: rgb(0, 128, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">while&nbsp;(true)</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">107</span><span style="color: rgb(0, 128, 0);"><img id="Codehighlighter1_2448_2731_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2448_2731_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2448_2731_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2448_2731_Closed_Text').style.display='inline';" alt="" align="top" /><img id="Codehighlighter1_2448_2731_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2448_2731_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2448_2731_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2448_2731_Open_Text').style.display='inline';" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2448_2731_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255); display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_2448_2731_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
</span><span style="color: rgb(0, 128, 128);">108</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ix</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">;<br />
</span><span style="color: rgb(0, 128, 128);">109</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle.writer.WaitOne();<br />
</span><span style="color: rgb(0, 128, 128);">110</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle.mutex.WaitOne();<br />
</span><span style="color: rgb(0, 128, 128);">111</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Write(</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">Write:{0}&nbsp;</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;ix);<br />
</span><span style="color: rgb(0, 128, 128);">112</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue.Enqueue(ix);<br />
</span><span style="color: rgb(0, 128, 128);">113</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle.mutex.Release();<br />
</span><span style="color: rgb(0, 128, 128);">114</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signle.reader.Release();<br />
</span><span style="color: rgb(0, 128, 128);">115</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">116</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">117</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">118</span><span style="color: rgb(0, 0, 0);"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />}</span></span></span></div>
<br />
<br />
<img src="http://www.cnblogs.com/antistone/aggbug/1153474.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/antistone/archive/2008/04/14/1153474.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2008/04/14/1153474.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>测试Google文件的发布功能</title><link>http://www.cnblogs.com/antistone/archive/2008/03/24/1119328.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Mon, 24 Mar 2008 02:46:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2008/03/24/1119328.html</guid><description><![CDATA[<p>阅读: 16 评论: 0 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2008-03-24 10:46 <a href="http://www.cnblogs.com/antistone/archive/2008/03/24/1119328.html" target="_blank">原文链接</a></p>用Google文件写Blog<br><br>今天用了一下Google文件， 看到它里面有一个发布的功能，我就想看看能不能用这个东西发布文章到博客园。<br>点击发布， 然后选中配置博客， 参照<a title="dudu" target="_blank" href="http://www.cnblogs.com/dudu/articles/495718.html" id="jdg0">dudu</a> 的介绍，配置如下： <div id="wj_p" style="padding: 1em 0pt; text-align: left;"><img style="width: 538px; height: 482px;" src="http://docs.google.com/File?id=df4b3x8g_40hp4cn3gp"><br><br>如果可以看到这个帖子，那么就说明发布成功了。<br>貌似现在只能发布随笔...<br></div><br><br><br>      <br><img src="http://www.cnblogs.com/antistone/aggbug/1119328.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/antistone/archive/2008/03/24/1119328.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2008/03/24/1119328.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Linux下OpenGL开发 －－ 准备篇</title><link>http://www.cnblogs.com/antistone/archive/2008/03/18/1111403.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Tue, 18 Mar 2008 05:18:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2008/03/18/1111403.html</guid><description><![CDATA[<p>阅读: 2210 评论: 4 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2008-03-18 13:18 <a href="http://www.cnblogs.com/antistone/archive/2008/03/18/1111403.html" target="_blank">原文链接</a></p>环境是Fedora 7<br />
首先需要安装OpenGL的开发环境。现在Linux下有很多OpenGL的实现，Fedora 7中已经附带了Mesa,这是OpenGL一个开源的实现。安装Fedora时如果选中了开发环境，那么Mesa可能就已经安装好了。如果你和我一样安装的时候没有选择开发，那么，可以通过yum来在线安装Mesa：<br />
首先查找Mesa相关的包：<br />
&nbsp;&nbsp;&nbsp; yum list mesa*<br />
返回结果应该是和Mesa相关的Lib以及开发包。<br />
<div style="border: 1px solid #666666;">&nbsp;&nbsp;&nbsp; Installed Packages<br />
&nbsp;&nbsp;&nbsp; mesa-libGL.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5.2-13.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; mesa-libGL-devel.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5.2-13.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; mesa-libGLU.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5.2-13.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; mesa-libGLU-devel.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5.2-13.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; mesa-libGLw.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5.1-2.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; mesa-libGLw-devel.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5.1-2.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; mesa-libOSMesa.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5.2-13.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; mesa-libOSMesa-devel.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5.2-13.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;&nbsp; mesa-source.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5.2-13.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp; <br />
</div>
<br />
然后安装这些包：<br />
&nbsp;&nbsp;&nbsp; yum install mesa*<br />
安装完成后，我们就拥有了一个基础的OpenGL开发环境了。<br />
<br />
但是仅仅是基础的开发环境是不够的，一般来讲，我们还要安装一个叫做Glut的库，这是一个OpenGL的辅助库，可以让我们创建与平台无关的OpenGL窗口。因此，安装Glut也是必要的。 Glut有很多种实现，在这里我用的是freeglut，是我在Fedore 7的源中找到的。当然还有其他的实现。<br />
查找Glut库的命令如下：<br />
&nbsp;&nbsp;&nbsp; yum list *glut*<br />
返回结果是<br />
<div style="border: 1px solid #666666;">&nbsp;&nbsp;&nbsp; Loading "installonlyn" plugin<br />
&nbsp;&nbsp;&nbsp; Installed Packages<br />
&nbsp;&nbsp;&nbsp; freeglut.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.4.0-11.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; freeglut-devel.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.4.0-11.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; installed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; Available Packages<br />
&nbsp;&nbsp;&nbsp; hugs98-glut.i386&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2006.09-3.fc7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fedora </div>
<br />
<br />
<br />
然后可以从结果中选择自己偏爱的库进行安装，我选的是freeglut,安装命令是<br />
&nbsp;&nbsp;&nbsp; yum install freeglut*<br />
<br />
安装成后，我们就可以开始写我们第一个Linux下的OpenGL程序了。<br />
代码如下（这段代码是从网上Copy的）：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;light.c<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #008000;">此程序利用GLUT绘制一个OpenGL窗口，并显示一个加以光照的球。<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;由于头文件glut.h中已经包含了头文件gl.h和glu.h，所以只需要include&nbsp;此文件</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">#&nbsp;include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">GL</span><span style="color: #000000;">/</span><span style="color: #000000;">glut.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">#&nbsp;include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdlib.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;初始化材料属性、光源属性、光照模型，打开深度缓冲区&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;init&nbsp;(&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;)<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;GLfloat&nbsp;mat_specular&nbsp;[&nbsp;]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{&nbsp;</span><span style="color: #800080;">1.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">1.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">1.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">1.0</span><span style="color: #000000;">&nbsp;};<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;GLfloat&nbsp;mat_shininess&nbsp;[&nbsp;]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{&nbsp;</span><span style="color: #800080;">50.0</span><span style="color: #000000;">&nbsp;};<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;GLfloat&nbsp;light_position&nbsp;[&nbsp;]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{&nbsp;</span><span style="color: #800080;">1.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">1.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">1.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">0.0</span><span style="color: #000000;">&nbsp;};<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glClearColor&nbsp;(&nbsp;</span><span style="color: #800080;">0.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">0.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">0.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">0.0</span><span style="color: #000000;">&nbsp;);<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glShadeModel&nbsp;(&nbsp;GL_SMOOTH&nbsp;);<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glMaterialfv&nbsp;(&nbsp;GL_FRONT,&nbsp;GL_SPECULAR,&nbsp;mat_specular);<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glMaterialfv&nbsp;(&nbsp;GL_FRONT,&nbsp;GL_SHININESS,&nbsp;mat_shininess);<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glLightfv&nbsp;(&nbsp;GL_LIGHT0,&nbsp;GL_POSITION,&nbsp;light_position);<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glEnable&nbsp;(GL_LIGHTING);<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glEnable&nbsp;(GL_LIGHT0);<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glEnable&nbsp;(GL_DEPTH_TEST);<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #008000;">/*</span><span style="color: #008000;">调用GLUT函数，绘制一个球</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;display&nbsp;(&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;)<br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glClear&nbsp;(GL_COLOR_BUFFER_BIT&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;GL_DEPTH_BUFFER_BIT);<br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutSolidSphere&nbsp;(</span><span style="color: #800080;">1.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">40</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">50</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glFlush&nbsp;();<br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;定义GLUT的reshape函数，w、h分别是当前窗口的宽和高</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;reshape&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;w,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;h)<br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glViewport&nbsp;(</span><span style="color: #800080;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">0</span><span style="color: #000000;">,&nbsp;(GLsizei)&nbsp;w,&nbsp;(GLsizei)&nbsp;h);<br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glMatrixMode&nbsp;(GL_PROJECTION);<br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glLoadIdentity&nbsp;(&nbsp;);<br />
</span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(w&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;h)<br />
</span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;glOrtho&nbsp;(</span><span style="color: #000000;">-</span><span style="color: #800080;">1.5</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">1.5</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">-</span><span style="color: #800080;">1.5</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;(&nbsp;GLfloat&nbsp;)&nbsp;h&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;(&nbsp;GLfloat&nbsp;)&nbsp;w,&nbsp;</span><span style="color: #800080;">1.5</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;(&nbsp;GLfloat&nbsp;)&nbsp;h&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;(&nbsp;GLfloat&nbsp;)&nbsp;w,&nbsp;</span><span style="color: #000000;">-</span><span style="color: #800080;">10.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">10.0</span><span style="color: #000000;">&nbsp;);<br />
</span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;glOrtho&nbsp;(</span><span style="color: #000000;">-</span><span style="color: #800080;">1.5</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;(&nbsp;GLfloat&nbsp;)&nbsp;w&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;(&nbsp;GLfloat&nbsp;)&nbsp;h,&nbsp;</span><span style="color: #800080;">1.5</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;(&nbsp;GLfloat&nbsp;)&nbsp;w&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;(&nbsp;GLfloat&nbsp;)&nbsp;h,&nbsp;</span><span style="color: #000000;">-</span><span style="color: #800080;">1.5</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">1.5</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">-</span><span style="color: #800080;">10.0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">10.0</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glMatrixMode&nbsp;(&nbsp;GL_MODELVIEW&nbsp;);<br />
</span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glLoadIdentity&nbsp;(&nbsp;)&nbsp;;<br />
</span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">50</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">51</span>&nbsp;<span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;定义对键盘的响应函数&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">52</span>&nbsp;<span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;keyboard&nbsp;(&nbsp;unsigned&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;key,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y)<br />
</span><span style="color: #008080;">53</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">按Esc键退出</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">switch</span><span style="color: #000000;">&nbsp;(key)&nbsp;<br />
</span><span style="color: #008080;">56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080;">57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">case</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">27</span><span style="color: #000000;">:<br />
</span><span style="color: #008080;">58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;(&nbsp;</span><span style="color: #800080;">0</span><span style="color: #000000;">&nbsp;);<br />
</span><span style="color: #008080;">59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">61</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">62</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">63</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">64</span>&nbsp;<span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;argc,&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">**</span><span style="color: #000000;">&nbsp;argv)<br />
</span><span style="color: #008080;">65</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;GLUT环境初始化</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">67</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutInit&nbsp;(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">argc,&nbsp;argv);<br />
</span><span style="color: #008080;">68</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;显示模式初始化&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutInitDisplayMode&nbsp;(GLUT_SINGLE&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;GLUT_RGB&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;GLUT_DEPTH);<br />
</span><span style="color: #008080;">70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;定义窗口大小&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutInitWindowSize&nbsp;(</span><span style="color: #800080;">300</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">300</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">72</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;定义窗口位置&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutInitWindowPosition&nbsp;(</span><span style="color: #800080;">100</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">100</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">74</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;显示窗口，窗口标题为执行函数名&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">75</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutCreateWindow&nbsp;(&nbsp;argv&nbsp;[&nbsp;</span><span style="color: #800080;">0</span><span style="color: #000000;">&nbsp;]&nbsp;);<br />
</span><span style="color: #008080;">76</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;调用OpenGL初始化函数&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">77</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;init&nbsp;(&nbsp;);<br />
</span><span style="color: #008080;">78</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;注册OpenGL绘图函数&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutDisplayFunc&nbsp;(&nbsp;display&nbsp;);<br />
</span><span style="color: #008080;">80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;注册窗口大小改变时的响应函数&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">81</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutReshapeFunc&nbsp;(&nbsp;reshape&nbsp;);<br />
</span><span style="color: #008080;">82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;注册键盘响应函数&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">83</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutKeyboardFunc&nbsp;(&nbsp;keyboard&nbsp;);<br />
</span><span style="color: #008080;">84</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;进入GLUT消息循环，开始执行程序&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">85</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;glutMainLoop(&nbsp;);<br />
</span><span style="color: #008080;">86</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">0</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">87</span>&nbsp;<span style="color: #000000;">}</span></div>
<br />
编译并运行：<br />
<div style="border: 1px solid #666666;">&nbsp;&nbsp;&nbsp; gcc -lglut -o light light.c<br />
&nbsp;&nbsp;&nbsp; ./light<br />
</div>
<br />
运行效果如下：<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/antistone/light.jpg" height="328" width="309" /><br />
<br />
至此第一个Linux下的OpenGL程序便诞生了..<br />
Enjoy it !<br />
<br />
<img src="http://www.cnblogs.com/antistone/aggbug/1111403.html?type=1" width="1" height="1" alt=""/><p>评论: 4　<a href="http://www.cnblogs.com/antistone/archive/2008/03/18/1111403.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2008/03/18/1111403.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>FCKEditor工具条定制</title><link>http://www.cnblogs.com/antistone/archive/2008/03/16/1108548.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Sun, 16 Mar 2008 09:06:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2008/03/16/1108548.html</guid><description><![CDATA[<p>阅读: 975 评论: 0 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2008-03-16 17:06 <a href="http://www.cnblogs.com/antistone/archive/2008/03/16/1108548.html" target="_blank">原文链接</a></p>FCkEditor确实是一个非常优秀的HTML在线编辑器，它的功能确实很强大，而且也非常的灵活，具有很强的定制性。<br />
<br />
FCKEditor默认的工具栏项目很多，我们完全可以对其进行自定制，以满足自己的需求。<br />
<br />
网上也有很多介绍定制工具栏的方法。下面就是其中的一种：<br />
<br />
在fckconfig.js中找到<font face="宋体">FCKConfig.ToolbarSets</font> 段，默认有两个工具条样式，一个是Default，一个是Basic（我的版本是2.5）。<br />
<br />
增加如下一段：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">FCKConfig.ToolbarSets[</span><span style="color: #800000">"</span><span style="color: #800000">Custom</span><span style="color: #800000">"</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">FontFormat','FontName','FontSize'],</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">Link','Unlink','Anchor'],</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">TextColor','BGColor'],'/'</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">Cut','Copy','Paste','PasteText','PasteWord'],</span><span style="color: #008000"><br />
</span><span style="color: #008080">10</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],</span><span style="color: #008000"><br />
</span><span style="color: #008080">11</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="color: #008000">'</span><span style="color: #008000">FitWindow','ShowBlocks','-','Source','About']&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;No&nbsp;comma&nbsp;for&nbsp;the&nbsp;last&nbsp;row.</span><span style="color: #008000"><br />
</span><span style="color: #008080">12</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">]&nbsp;;</span></div>
<br />
<br />
然后再调用代码中做如下更改<br />
<br />
<span style="color: #ff0000">注意第7行是新增的，指定所要使用的工具栏<br />
</span><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">%<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Dim</span><span style="color: #000000">&nbsp;oFCKeditor<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Set</span><span style="color: #000000">&nbsp;oFCKeditor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">New</span><span style="color: #000000">&nbsp;FCKeditor<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.BasePath&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">edit/</span><span style="color: #800000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.Value&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">""</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.Config(</span><span style="color: #800000">"</span><span style="color: #800000">SkinPath</span><span style="color: #800000">"</span><span style="color: #000000">)</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">/website/manage/edit/editor/skins/silver/</span><span style="color: #800000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.ToolbarSet&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Custom</span><span style="color: #800000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;oFCKeditor.Create&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">txtcontent</span><span style="color: #800000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />%</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<br />
其定制语法很简单<br />
[]&nbsp; 表示一个工具条，<br />
[]&nbsp; 中的短横线'-'表示一个垂直分割线<br />
''&nbsp; 两个单引号中间加一个标识符表示一个工具栏按钮，具体的对应关系可以自己找。<br />
'/' 作用类似于一个回车。使该符号后面的工具栏新起一行排列。<br />
<br />
我最终的定制效果如下：<br />
<br />
<img height="174" alt="" src="http://www.cnblogs.com/images/cnblogs_com/antistone/toolbar.JPG" width="549" border="0" /><br />
<img src="http://www.cnblogs.com/antistone/aggbug/1108548.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/antistone/archive/2008/03/16/1108548.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2008/03/16/1108548.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>FCKEditor的使用-asp</title><link>http://www.cnblogs.com/antistone/archive/2008/03/16/1108244.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Sun, 16 Mar 2008 03:31:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2008/03/16/1108244.html</guid><description><![CDATA[<p>阅读: 24 评论: 0 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2008-03-16 11:31 <a href="http://www.cnblogs.com/antistone/archive/2008/03/16/1108244.html" target="_blank">原文链接</a></p>最近做的一个网站中要用到FCKEditor。网站采用asp开发，所以涉及到FCKEditor在asp下的配置相关的东西。以前也用过这类的HTML在线编辑器，比如eWebEditor等，但是总是每次用每次忘。这次找到了一个比较好的介绍。记录一下。<br />
<br />
<a title="FCKeditor 2.5 使用方法 配置ASP上传功能" href="http://hi.baidu.com/rabeta/blog/item/97cb6089f1cafbb00f2444c1.html" target="_blank">FCKeditor 2.5 使用方法 配置ASP上传功能</a><br />
<font face="Verdana">http://hi.baidu.com/rabeta/blog/item/97cb6089f1cafbb00f2444c1.html</font>
<img src="http://www.cnblogs.com/antistone/aggbug/1108244.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/antistone/archive/2008/03/16/1108244.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2008/03/16/1108244.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>石头汤的故事</title><link>http://www.cnblogs.com/antistone/archive/2008/03/15/1106842.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Sat, 15 Mar 2008 02:08:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2008/03/15/1106842.html</guid><description><![CDATA[<p>阅读: 199 评论: 0 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2008-03-15 10:08 <a href="http://www.cnblogs.com/antistone/archive/2008/03/15/1106842.html" target="_blank">原文链接</a></p><p><font face="Verdana">　　过年回家，带回了一本书，《程序员修炼之道--从小工到专家》。对这本书久有耳闻，今日一见，觉得不虚传。<br />
　　在这本书的前几章立，提到了这样一个故事：<br />
　　三个士兵从战场返回家乡，在路上饿了。他们看见前面有村庄，就来了精神——他们相信村民会给他们一顿饭吃。但当他们到达那里，却发现门锁着，窗户也关着。经历了多年战乱，村民们粮食匮乏，并把他们有的一点粮食藏了起来。</font></p>
<p><font face="Verdana">　　士兵们并未气馁，他们煮开一锅水，小心地把三块石头放进去。吃惊的村民们走出来望着他们。</font></p>
<p><font face="Verdana">　　&#8220;这是石头汤。&#8221;士兵们解释说。&#8220;就放石头吗？&#8221;村民们问。&#8220;一点没错——但有人说加一些胡萝卜味道更好&#8230;&#8230;&#8221;一个村民跑开了，又很快带着他储藏的一篮胡萝卜跑回来。</font></p>
<p><font face="Verdana">　　几分钟之后，村民们又问：&#8220;就是这些了吗？&#8221;</font></p>
<p><font face="Verdana">　　&#8220;哦，&#8221;士兵们说：&#8220;几个土豆会让汤更实在。&#8221;又一个村民跑开了。</font></p>
<p><font face="Verdana">　　接下来的一小时，士兵们列举了更多让汤更鲜美的配料：牛肉、韭菜、盐，还有香菜。每次都会有一个不同的村民跑回去搜寻自己的私人储藏品。</font></p>
<p><font face="Verdana">　　最后他们煮出了一大锅热气腾腾的汤。士兵们拿掉石头，和所有村民一起享用了一顿美餐，这是几个月以来他们所有人第一次吃饱饭。<br />
<br />
　　看完这个故事，感触良久。欺骗，在一定必要的时候，也可以起到催化剂的作用。或许这不能叫做欺骗，这只能被叫做诱骗。呵呵。有很多事情，是慢慢变化的。我们一定要注意到这些变化，考虑到这些变化可能带来的影响，及时制止可能给我们带来威胁的变化，催进那些对我们有利的变化。这样，才能达到最后的目标。<br />
<br />
</font></p><img src="http://www.cnblogs.com/antistone/aggbug/1106842.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/antistone/archive/2008/03/15/1106842.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2008/03/15/1106842.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>在ＪＡＶＡ中读取文件乱码的解决办法</title><link>http://www.cnblogs.com/antistone/archive/2007/05/21/754882.html</link><dc:creator>antistone</dc:creator><author>antistone</author><pubDate>Mon, 21 May 2007 15:12:00 GMT</pubDate><guid>http://www.cnblogs.com/antistone/archive/2007/05/21/754882.html</guid><description><![CDATA[<p>阅读: 1841 评论: 1 作者: <a href="http://www.cnblogs.com/antistone/" target="_blank">antistone</a> 发表于 2007-05-21 23:12 <a href="http://www.cnblogs.com/antistone/archive/2007/05/21/754882.html" target="_blank">原文链接</a></p><p></p> <p>public static String encodin = "UTF8" <br>public static String encodout = "UTF8" <br>static void writeOutput(String str) { <br>try { <br>FileOutputStream fos = new FileOutputStream("test.txt"); <br>Writer out = new OutputStreamWriter(fos, encodout); <br>out.write(str); <br>out.close(); <br>} catch (IOException e) { <br>e.printStackTrace(); <br>} <br>} <br>static String readInput() { <br>StringBuffer buffer = new StringBuffer(); <br>try { <br>FileInputStream fis = new FileInputStream("test.txt"); <br>InputStreamReader isr = new InputStreamReader(fis, encodin); <br>Reader in = new BufferedReader(isr); <br>int ch; <br>while ((ch = in.read()) &gt; -1) { <br>buffer.append((char)ch); <br>} <br>in.close(); <br>return buffer.toString(); <br>} catch (IOException e) { <br>e.printStackTrace(); <br>return null; <br>} <br>}</p> <img src="http://www.cnblogs.com/antistone/aggbug/754882.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/antistone/archive/2007/05/21/754882.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/antistone/archive/2007/05/21/754882.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>