<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WinForm Archives | Xiaoming Tu - Blog</title>
	<atom:link href="https://www.xiaomingtu.com/tags/winform/feed" rel="self" type="application/rss+xml" />
	<link>http://www.xiaomingtu.com/tags/winform</link>
	<description>学习、工作、生活，点点滴滴。</description>
	<lastBuildDate>Thu, 10 May 2012 00:02:40 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>关于.NET里面ContextSwitchDeadlock异常</title>
		<link>https://www.xiaomingtu.com/archives/15396?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ooou-netaiaaecontextswitchdeadlockoi</link>
					<comments>https://www.xiaomingtu.com/archives/15396#comments</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Sun, 26 Aug 2007 22:41:00 +0000</pubDate>
				<category><![CDATA[Web应用]]></category>
		<category><![CDATA[专业技术]]></category>
		<category><![CDATA[开发语言]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[WebForm]]></category>
		<category><![CDATA[WinForm]]></category>
		<guid isPermaLink="false">http://blog.csdn.net/al2ping/article/details/1759898</guid>

					<description><![CDATA[<p>问题背景 最近在做一个反应速度测试软件，是用C#写的，刚开始是觉得是个小工具，随便做做就可以了，结果是越做越复杂，本来打算一到两个星期就可以做完的，结果是做了两个月，当然这期间还有其他事情在做的。 问题出现 在软件中需要一个功能，就是随机生成一个长度为120的数字序列，要求是： 1.          每个数字都是1、2、3、4这四个数中的一个； 2.          前后两个数不能重复； 3.          每个数（1、2、3、4）各30个，一共120个。 我自己写了个算法，具体思路是这样的：循环120次，每次随机产生个数，然后判断这个数已经生成了多少次了，如果超过了30个或者跟前个数字重复，就重新随机产生。 进入调试之后，每次到循环这里，貌似都是循环到80次左右的时候就会出现ContextSwitchDeadlock异常，然而有时候又不会的。 郁闷一个星期… 问题解决 我差了很多资料，网上很多关于这个异常的都是说怎么会关闭掉，只要在VS里面，“调试”“异常”“Managed Debugging Assistant”下，将这个异常的勾去掉就不会再出现了。 出现是不出现了，但问题是程序到这里下不去了，屏蔽掉也没有用。 在MSDN里面，对这个异常的解释是： 如果在试图进行 COM 上下文转换期间检测到一个死锁，则将激活 ContextSwitchDeadlock 托管调试助手 (MDA)。 症状 最常见的症状是：从托管代码对非托管 COM 组件的调用未返回任何结果。另一个症状是内存使用量与时俱增。 原因 原因很可能是单线程单元 (STA) 线程不发送消息。STA 线程或者等待而且不发送消息，或者执行一个长时间的操作而且不允许发送消息队列。 内存使用与时俱增的原因是：终结器线程试图对非托管 COM 组件调用 release 而该组件未返回任何结果。这会阻止终结器回收其他对象。 解决办法 遵循有关 STA 消息发送的 COM 规则。 对运行库的影响 此 MDA 对 CLR 无任何影响。它只报告有关 COM 上下文的数据。 输出 一条描述当前上下文和目标上下文的消息。 [&#8230;]</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15396">关于.NET里面ContextSwitchDeadlock异常</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 12pt 0cm 3.2pt; text-align: left; mso-pagination: widow-orphan; mso-outline-level: 9;" align="left"><span style="font-size: 12pt; font-family: 黑体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">问题背景</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">最近在做一个反应速度测试软件，是用</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">C#</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">写的，刚开始是觉得是个小工具，随便做做就可以了，结果是越做越复杂，本来打算一到两个星期就可以做完的，结果是做了两个月，当然这期间还有其他事情在做的。</span></p>
<p class="MsoNormal" style="margin: 12pt 0cm 3.2pt; text-align: left; mso-pagination: widow-orphan; mso-outline-level: 9;" align="left"><span style="font-size: 12pt; font-family: 黑体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">问题出现</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">在软件中需要一个功能，就是随机生成一个长度为</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">120</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">的数字序列，要求是：</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 39pt; text-indent: -21pt; text-align: left; mso-pagination: widow-orphan; tab-stops: list 39.0pt;" align="left"><span style="font-family: Times New Roman;"><span style="font-size: 9pt; mso-font-kerning: 0pt; mso-fareast-font-family: 'Times New Roman';" lang="EN-US">1.</span><span style="font-size: 7pt; mso-font-kerning: 0pt; mso-fareast-font-family: 'Times New Roman';" lang="EN-US">          </span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">每个数字都是</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">1</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">、</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">2</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">、</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">3</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">、</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">4</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">这四个数中的一个；</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 39pt; text-indent: -21pt; text-align: left; mso-pagination: widow-orphan; tab-stops: list 39.0pt;" align="left"><span style="font-family: Times New Roman;"><span style="font-size: 9pt; mso-font-kerning: 0pt; mso-fareast-font-family: 'Times New Roman';" lang="EN-US">2.</span><span style="font-size: 7pt; mso-font-kerning: 0pt; mso-fareast-font-family: 'Times New Roman';" lang="EN-US">          </span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">前后两个数不能重复；</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 39pt; text-indent: -21pt; text-align: left; mso-pagination: widow-orphan; tab-stops: list 39.0pt;" align="left"><span style="font-family: Times New Roman;"><span style="font-size: 9pt; mso-font-kerning: 0pt; mso-fareast-font-family: 'Times New Roman';" lang="EN-US">3.</span><span style="font-size: 7pt; mso-font-kerning: 0pt; mso-fareast-font-family: 'Times New Roman';" lang="EN-US">          </span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">每个数（</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">1</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">、</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">2</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">、</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">3</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">、</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">4</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">）各</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">30</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">个，一共</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">120</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">个。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">我自己写了个算法，具体思路是这样的：循环</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">120</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">次，每次随机产生个数，然后判断这个数已经生成了多少次了，如果超过了</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">30</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">个或者跟前个数字重复，就重新随机产生。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">进入调试之后，每次到循环这里，貌似都是循环到</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">80</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">次左右的时候就会出现</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">ContextSwitchDeadlock</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">异常，然而有时候又不会的。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">郁闷一个星期</span><span style="font-family: Times New Roman;"><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US">…</span></span></p>
<p class="MsoNormal" style="margin: 12pt 0cm 3.2pt; text-align: left; mso-pagination: widow-orphan; mso-outline-level: 9;" align="left"><span style="font-size: 12pt; font-family: 黑体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">问题解决<span id="more-15396"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">我差了很多资料，网上很多关于这个异常的都是说怎么会关闭掉，只要在</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">VS</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">里面，“调试”“异常”“</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">Managed Debugging Assistant</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">”下，将这个异常的勾去掉就不会再出现了。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">出现是不出现了，但问题是程序到这里下不去了，屏蔽掉也没有用。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">在</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">MSDN</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">里面，对这个异常的解释是：</span></p>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: widow-orphan;" align="center">
<hr align="center" size="2" width="100%" />
</div>
<p class="MsoNormal" style="margin: 7.5pt 0cm 3.75pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">如果在试图进行</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> COM </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">上下文转换期间检测到一个死锁，则将激活</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> ContextSwitchDeadlock </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">托管调试助手</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> (MDA)</span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">。</span></p>
<p class="MsoNormal" style="margin: 13.5pt 0cm 6pt; text-align: left; mso-pagination: widow-orphan; mso-outline-level: 1;" align="left"><strong><span style="font-size: 11pt; color: #003399; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;">症状</span></strong></p>
<p class="MsoNormal" style="margin: 7.5pt 0cm 3.75pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">最常见的症状是：从托管代码对非托管</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> COM </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">组件的调用未返回任何结果。另一个症状是内存使用量与时俱增。</span></p>
<p class="MsoNormal" style="margin: 13.5pt 0cm 6pt; text-align: left; mso-pagination: widow-orphan; mso-outline-level: 1;" align="left"><strong><span style="font-size: 11pt; color: #003399; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;">原因</span></strong></p>
<p class="MsoNormal" style="margin: 7.5pt 0cm 3.75pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">原因很可能是单线程单元</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> (STA) </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">线程不发送消息。</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">STA </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">线程或者等待而且不发送消息，或者执行一个长时间的操作而且不允许发送消息队列。</span></p>
<p class="MsoNormal" style="margin: 7.5pt 0cm 3.75pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">内存使用与时俱增的原因是：终结器线程试图对非托管</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> COM </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">组件调用</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> release </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">而该组件未返回任何结果。这会阻止终结器回收其他对象。</span></p>
<p class="MsoNormal" style="margin: 13.5pt 0cm 6pt; text-align: left; mso-pagination: widow-orphan; mso-outline-level: 1;" align="left"><strong><span style="font-size: 11pt; color: #003399; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;">解决办法</span></strong></p>
<p class="MsoNormal" style="margin: 7.5pt 0cm 3.75pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">遵循有关</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> STA </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">消息发送的</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> COM </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">规则。</span></p>
<p class="MsoNormal" style="margin: 13.5pt 0cm 6pt; text-align: left; mso-pagination: widow-orphan; mso-outline-level: 1;" align="left"><strong><span style="font-size: 11pt; color: #003399; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;">对运行库的影响</span></strong></p>
<p class="MsoNormal" style="margin: 7.5pt 0cm 3.75pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">此</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> MDA </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">对</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> CLR </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">无任何影响。它只报告有关</span><span style="font-size: 10pt; color: black; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;"> COM </span></span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">上下文的数据。</span></p>
<p class="MsoNormal" style="margin: 13.5pt 0cm 6pt; text-align: left; mso-pagination: widow-orphan; mso-outline-level: 1;" align="left"><strong><span style="font-size: 11pt; color: #003399; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 18.0pt;">输出</span></strong></p>
<p class="MsoNormal" style="margin: 7.5pt 0cm 3.75pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt;">一条描述当前上下文和目标上下文的消息。</span></p>
<div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: widow-orphan;" align="center">
<hr align="center" size="2" width="100%" />
</div>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-family: Times New Roman;"><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">还查了些其他的资料，得出的结论是</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">.NET</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">下强制转换需要很大的性能（因为才我的程序里面，得到的数字序列还要转换为枚举类型），所以造成溢出呀什么的，以为没的救了，就放弃了，跟“客户”商量了一下，用别的办法了。但是后来又要求这个一定要实现了，就请教了一位老师，他看完我的算法后知道了是我的算法问题，具体描述一下：<span style="color: red;">当我生成了</span></span><span style="font-size: 9pt; color: red; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">119</span></span><span style="font-size: 9pt; color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">个数字之后，比如</span><span style="font-size: 9pt; color: red; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">1</span></span><span style="font-size: 9pt; color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">、</span><span style="font-size: 9pt; color: red; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">2</span></span><span style="font-size: 9pt; color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">、</span><span style="font-size: 9pt; color: red; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">3</span></span><span style="font-size: 9pt; color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">都已经</span><span style="font-size: 9pt; color: red; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">30</span></span><span style="font-size: 9pt; color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">个，这样最后一个数字只能是</span><span style="font-size: 9pt; color: red; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">4</span></span><span style="font-size: 9pt; color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">了，然而如果倒数第二个数字正好也是</span><span style="font-size: 9pt; color: red; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">4</span></span><span style="font-size: 9pt; color: red; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">的话，这里就会出现死循环了</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">。后来经过调试，发现果然是这个原因，原来不是死锁，而是死循环。哎</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">…</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">！惨败啊！</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">所以，这里得出的另一个结论是，造成</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">ContextSwitchDeadlock</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">异常的又一原因是死循环。简简单单的原因，</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">MSDN</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">解释的这么复杂（对我而言），不过也有可能是</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">MS</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">没有把这个写出来，也就是</span><span style="font-size: 9pt; mso-font-kerning: 0pt;" lang="EN-US"><span style="font-family: Times New Roman;">MSDN</span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">的解释和死循环根本没关系。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 18pt; text-align: left; mso-pagination: widow-orphan;" align="left"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-font-kerning: 0pt;">总之，希望这个对大家有所帮助吧，下面也贴一下老师帮我写另一个算法。仅供参考。</span></p>
<div style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; width: 95%; word-break: break-all; padding-top: 4px; border: windowtext 0.5pt solid;">
<div><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #000000;">          </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">int</span><span style="color: #000000;">[] Randomlist()</span></div>
</div>
<p><img decoding="async" id="_54_2212_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" alt="" align="top" /><img decoding="async" id="_54_2212_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" alt="" align="top" />          <span id="_54_2212_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_54_2212_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             Random ro <span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Random();</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             <span style="color: #0000ff;">int</span><span style="color: #000000;">[] Resultlist </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> </span><span style="color: #0000ff;">int</span><span style="color: #000000;">[</span><span style="color: #000000;">120</span><span style="color: #000000;">];</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             <span style="color: #0000ff;">int</span><span style="color: #000000;">[] KeyNumber </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> </span><span style="color: #0000ff;">int</span><span style="color: #000000;">[</span><span style="color: #000000;">4</span><span style="color: #000000;">];</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             <span style="color: #0000ff;">int</span><span style="color: #000000;"> i,j,r,s,flg;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             <span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">120</span><span style="color: #000000;">;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_260_311_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_260_311_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />              <span id="_260_311_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_260_311_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                 Resultlist[i]<span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />             }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             <span style="color: #0000ff;">for</span><span style="color: #000000;"> (i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">; i </span><span style="color: #000000;">&lt;</span><span style="color: #000000;"> </span><span style="color: #000000;">4</span><span style="color: #000000;">; i</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_366_416_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_366_416_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />              <span id="_366_416_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_366_416_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                 KeyNumber[i] <span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />             }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             <span style="color: #0000ff;">for</span><span style="color: #000000;"> (i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">; i </span><span style="color: #000000;">&lt;</span><span style="color: #000000;"> </span><span style="color: #000000;">30</span><span style="color: #000000;">; i</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_472_1146_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_472_1146_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />              <span id="_472_1146_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_472_1146_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                 <span style="color: #0000ff;">for</span><span style="color: #000000;"> (j </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">; j </span><span style="color: #000000;">&lt;</span><span style="color: #000000;"> </span><span style="color: #000000;">4</span><span style="color: #000000;">; )</span></p>
<p><img decoding="async" id="_532_1128_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_532_1128_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />                  <span id="_532_1128_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_532_1128_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                     r <span style="color: #000000;">=</span><span style="color: #000000;"> (</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)ro.Next(</span><span style="color: #000000;">4</span><span style="color: #000000;">);</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                     flg <span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                     <span style="color: #0000ff;">if</span><span style="color: #000000;"> (j </span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_660_887_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_660_887_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />                      <span id="_660_887_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_660_887_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         <span style="color: #0000ff;">for</span><span style="color: #000000;"> (s </span><span style="color: #000000;">=</span><span style="color: #000000;"> j</span><span style="color: #000000;">&#8211;</span><span style="color: #000000;">1</span><span style="color: #000000;">; s </span><span style="color: #000000;">&gt;=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">; s</span><span style="color: #000000;">&#8212;</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_740_864_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_740_864_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />                          <span id="_740_864_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_740_864_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                             <span style="color: #0000ff;">if</span><span style="color: #000000;"> (r</span><span style="color: #000000;">==</span><span style="color: #000000;"> (KeyNumber[s]</span><span style="color: #000000;">&#8211;</span><span style="color: #000000;">1</span><span style="color: #000000;">))</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                                 flg <span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />                         }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />                     }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                     <span style="color: #0000ff;">if</span><span style="color: #000000;"> (flg </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_946_1109_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_946_1109_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />                      <span id="_946_1109_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_946_1109_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         KeyNumber[j] <span style="color: #000000;">=</span><span style="color: #000000;"> r </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         Resultlist[i <span style="color: #000000;">*</span><span style="color: #000000;"> </span><span style="color: #000000;">4</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> j] </span><span style="color: #000000;">=</span><span style="color: #000000;"> KeyNumber[j];</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         j<span style="color: #000000;">++</span><span style="color: #000000;">;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />                     }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />                 }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />             }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             <span style="color: #0000ff;">for</span><span style="color: #000000;"> ( i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">120</span><span style="color: #000000;">;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_1198_1643_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_1198_1643_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />              <span id="_1198_1643_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_1198_1643_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                 <span style="color: #0000ff;">if</span><span style="color: #000000;"> (Resultlist[i </span><span style="color: #000000;">&#8211;</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">] </span><span style="color: #000000;">==</span><span style="color: #000000;"> Resultlist[i])</span></p>
<p><img decoding="async" id="_1275_1628_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_1275_1628_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />                  <span id="_1275_1628_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_1275_1628_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                     <span style="color: #0000ff;">for</span><span style="color: #000000;">(j</span><span style="color: #000000;">=</span><span style="color: #000000;">i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">120</span><span style="color: #000000;">;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         <span style="color: #0000ff;">if</span><span style="color: #000000;"> (Resultlist[j] </span><span style="color: #000000;">!=</span><span style="color: #000000;"> Resultlist[i]) </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                     <span style="color: #0000ff;">if</span><span style="color: #000000;">(j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">120</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_1440_1607_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_1440_1607_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />                      <span id="_1440_1607_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_1440_1607_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         r <span style="color: #000000;">=</span><span style="color: #000000;"> Resultlist[i];</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         Resultlist[i] <span style="color: #000000;">=</span><span style="color: #000000;"> Resultlist[j];</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         Resultlist[j] <span style="color: #000000;">=</span><span style="color: #000000;"> r;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />                     }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />                 }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />             }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             <span style="color: #0000ff;">for</span><span style="color: #000000;"> ( i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">119</span><span style="color: #000000;">; i </span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">; i</span><span style="color: #000000;">&#8212;</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_1701_2167_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_1701_2167_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />              <span id="_1701_2167_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_1701_2167_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                 <span style="color: #0000ff;">if</span><span style="color: #000000;"> (Resultlist[i] </span><span style="color: #000000;">==</span><span style="color: #000000;"> Resultlist[i </span><span style="color: #000000;">&#8211;</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">])</span></p>
<p><img decoding="async" id="_1778_2152_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_1778_2152_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />                  <span id="_1778_2152_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_1778_2152_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                     <span style="color: #0000ff;">for</span><span style="color: #000000;"> ( j </span><span style="color: #000000;">=</span><span style="color: #000000;"> i </span><span style="color: #000000;">&#8211;</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;">; j </span><span style="color: #000000;">&gt;=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">; j</span><span style="color: #000000;">&#8212;</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         <span style="color: #0000ff;">if</span><span style="color: #000000;"> (Resultlist[j] </span><span style="color: #000000;">!=</span><span style="color: #000000;"> Resultlist[i </span><span style="color: #000000;">&#8211;</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">]) </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                     <span style="color: #0000ff;">if</span><span style="color: #000000;"> (j </span><span style="color: #000000;">&gt;=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">)</span></p>
<p><img decoding="async" id="_1958_2133_Open_Image" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img decoding="async" id="_1958_2133_Closed_Image" style="display: none;" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />                      <span id="_1958_2133_Closed_Text" style="display: none; background-color: #ffffff; border: #808080 1px solid;">&#8230;</span><span id="_1958_2133_Open_Text"><span style="color: #000000;">{</span></span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         r <span style="color: #000000;">=</span><span style="color: #000000;"> Resultlist[i </span><span style="color: #000000;">&#8211;</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">];</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         Resultlist[i <span style="color: #000000;">&#8211;</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> Resultlist[j];</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />                         Resultlist[j] <span style="color: #000000;">=</span><span style="color: #000000;"> r;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />                     }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />                 }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />             }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" /></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />             <span style="color: #0000ff;">return</span><span style="color: #000000;"> Resultlist;</span></p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />         }</p>
<p><img decoding="async" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15396">关于.NET里面ContextSwitchDeadlock异常</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15396/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>安装MSSQL2000时的问题</title>
		<link>https://www.xiaomingtu.com/archives/15392?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=omssql2000euaieia</link>
					<comments>https://www.xiaomingtu.com/archives/15392#respond</comments>
		
		<dc:creator><![CDATA[Xiaoming]]></dc:creator>
		<pubDate>Tue, 13 Feb 2007 13:14:00 +0000</pubDate>
				<category><![CDATA[Web应用]]></category>
		<category><![CDATA[专业技术]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[桌面应用]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WebForm]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WinForm]]></category>
		<guid isPermaLink="false">http://blog.csdn.net/al2ping/article/details/1509122</guid>

					<description><![CDATA[<p>我以前装过MSSQL2005，现在由于工作需要要装2000的，结果装起来后总是连接不上，提示错误： 未能与（LOCAL）的连接。 原因：SQL   SERVER不存在或访问被拒绝   ConnectionOpen(Connect())。 请验证SQL   SERVER   是否运行并检查   SQL   SERVER   注册属性（通过右击（LOCAL）节点，然后重试。 经过两天的努力寻找，终于解决了问题， 在安装完配置服务器时就会产生错误，导致安装不能继续，我就想了个办法，就是以修复的形式再装了一遍，这样，该有的东西(开始菜单里的菜单项等)都有了，但是会发现你点开企业管理器的服务器时会产生如上的错误，一开始我以为是原先装过2005的缘故的，原来不是，我为了系统安全，把原先系统的Administrator帐户改名了，所以，导致以Windows 帐户身份登陆时会出错，因为MSSQL在安装的时候会自动添加两个帐户，一个是系统的Administrator帐户，还有一个你正在使用的帐户，因为它找不到Administrator帐户，就无法添加这两个帐户，最后使得无法连接的错误。 我的解决方法是首先找到记录MSSQL记录登陆类型的键值：[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer] ，找到里面的“LoginMode”项，将其键值“1”改为“2”，1表示以Windows帐户验证，2表示以SQL身份验证，这样你就可以以SQL身份登陆了，因为我装的时候就是选Windows验证的，所以SA帐户密码为空，在企业管理器里，选择“编辑SQL SERVER注册属性”，选择“使用SQL SERVER身份验证”，用户名为“sa”，密码为空(看你安装的时候有没有设的)，这样就可以连接进去了。问题还没解决，我们还是不能以Windows 身份验证登陆，其实进入以后就好办了，在“安全性”里，选择“登录”，“新建登录”，添加你系统的管理员帐户以及你在使用的帐户，这样你就可以再次修改服务器的注册属性，然后以Windows身份登录了。 好了，问题解决了。开心啊，烦了我三天的问题，总共装了有4，5遍，有次想到可能是没删除干净(因为没安装好的，所以没的卸载)，然后在注册表里找“sql”相关的键，全删光，花了有1个小时，再装，结果还是不行，郁闷啊，不过现在终于好了。 &#160;</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15392">安装MSSQL2000时的问题</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>我以前装过MSSQL2005，现在由于工作需要要装2000的，结果装起来后总是连接不上，提示错误：</p>
<p><span style="color: #e61a1a;">未能与（LOCAL）的连接。</span></p>
<p>原因：SQL   SERVER不存在或访问被拒绝   ConnectionOpen(Connect())。</p>
<p>请验证SQL   SERVER   是否运行并检查   SQL   SERVER   注册属性（通过右击（LOCAL）节点，然后重试。</p>
<p>经过两天的努力寻找，终于解决了问题，<span id="more-15392"></span></p>
<p>在安装完配置服务器时就会产生错误，导致安装不能继续，我就想了个办法，就是以修复的形式再装了一遍，这样，该有的东西(开始菜单里的菜单项等)都有了，但是会发现你点开企业管理器的服务器时会产生如上的错误，一开始我以为是原先装过2005的缘故的，原来不是，我为了系统安全，把原先系统的Administrator帐户改名了，所以，导致以Windows 帐户身份登陆时会出错，因为MSSQL在安装的时候会自动添加两个帐户，一个是系统的Administrator帐户，还有一个你正在使用的帐户，因为它找不到Administrator帐户，就无法添加这两个帐户，最后使得无法连接的错误。</p>
<p>我的解决方法是首先找到记录MSSQL记录登陆类型的键值<span style="color: #ee1111;">：[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer] </span>，找到里面的“<span style="color: #f70909;">LoginMode</span>”项，将其键值“1”改为“2”，1表示以Windows帐户验证，2表示以SQL身份验证，这样你就可以以SQL身份登陆了，因为我装的时候就是选Windows验证的，所以SA帐户密码为空，在企业管理器里，选择“编辑SQL SERVER注册属性”，选择“使用SQL SERVER身份验证”，用户名为“sa”，密码为空(看你安装的时候有没有设的)，这样就可以连接进去了。问题还没解决，我们还是不能以Windows 身份验证登陆，其实进入以后就好办了，在“安全性”里，选择“登录”，“新建登录”，添加你<span style="color: #f70909;">系统的管理员帐户以及你在使用的帐户</span>，这样你就可以再次修改服务器的注册属性，然后以Windows身份登录了。</p>
<p>好了，问题解决了。开心啊，烦了我三天的问题，总共装了有4，5遍，有次想到可能是没删除干净(因为没安装好的，所以没的卸载)，然后在注册表里找“sql”相关的键，全删光，花了有1个小时，再装，结果还是不行，郁闷啊，不过现在终于好了。</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.xiaomingtu.com/archives/15392">安装MSSQL2000时的问题</a> appeared first on <a href="https://www.xiaomingtu.com">Xiaoming Tu - Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.xiaomingtu.com/archives/15392/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
