本标题很简单,求解.NET 一个问题解答.欢迎发言

csl_TMDGOD 2011-06-30 12:19:54
今天闲的蛋疼,写个程序生成一个数字与MD5值对应的数据,数据级别预计30W左右。
当程序运行时,出现未响应.
然后,弹出对话框,显示内容如下:

CLR 无法从 COM 上下文 0x3027d8 转换为 COM 上下文 0x302948,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作。这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积。要避免此问题,所有单线程单元(STA)线程都应使用泵式等待基元(如 CoWaitForMultipleHandles),并在运行时间很长的操作过程中定期发送消息。


请问:1这是什么原因?
2这个问题怎么解决,以及最佳解决方法?

补:我采用网上传统的加密方式,如下:
// MD5
public string MD5(string str, int length)
{
if (length == 16) //16位MD5加密(取32位加密的9~25字符)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
}
else//32位加密
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
}
}

这个方法很占用资源么?难道是造成资源耗尽么?
求解.....(由于本人积分不多,最多只能100分.不过本人结帖率还是不错的)
...全文
136 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
csl_TMDGOD 2011-06-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bearfly2011 的回复:]
在这个问题中,数据量大也与多线程无关,你开启多少个线程也不可能减少所需时间。
问题的关键出在“.net长时间无反应操作的处理机制上”,就像IE发现死循环弹出终止提示一样,都是一种保护机制。就像楼主的问题:需求没有问题,只是做法不符合平台机制。所以可以换一种方式:起一个线程,然后禁用UI,等线程结束后在做其他操作。
[/Quote]
言之有理..控制台程序很正常...
风骑士之怒 2011-06-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 csl_tmdgod 的回复:]
引用 1 楼 wknight_it 的回复:

你这操作执行时间太长了,,

确实时间长...有什么方法解决没?用多线程处理?
[/Quote]

多线程吧,你不会是想弄个MD5碰撞的穷举库吧?
threenewbee 2011-06-30
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/system.security.cryptography.md5.aspx#Y1978
csl_TMDGOD 2011-06-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wknight_it 的回复:]

你这操作执行时间太长了,,
[/Quote]
确实时间长...有什么方法解决没?用多线程处理?
风骑士之怒 2011-06-30
  • 打赏
  • 举报
回复
你这操作执行时间太长了,,
q198708wyp 2011-06-30
  • 打赏
  • 举报
回复
不会,帮顶
bearfly2011 2011-06-30
  • 打赏
  • 举报
回复
在这个问题中,数据量大也与多线程无关,你开启多少个线程也不可能减少所需时间。
问题的关键出在“.net长时间无反应操作的处理机制上”,就像IE发现死循环弹出终止提示一样,都是一种保护机制。就像楼主的问题:需求没有问题,只是做法不符合平台机制。所以可以换一种方式:起一个线程,然后禁用UI,等线程结束后在做其他操作。
itliyi 2011-06-30
  • 打赏
  • 举报
回复
多线程
kingdom_0 2011-06-30
  • 打赏
  • 举报
回复
如果数据量非常大的话,我能想到的,也是多线程.
csl_TMDGOD 2011-06-30
  • 打赏
  • 举报
回复
唉 上班了。。。还是没有找到满意的答案。。。
Thomas_Chen 2011-06-30
  • 打赏
  • 举报
回复
帮顶 接分

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧