c# 写的一个操作数据库的程序,因为要循环对数据库进行操作,导致堆栈溢出,请问有什么好的解决办法

CLR无法从COM上下文0x5600e8转换为COM上下文0x560258,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送Wind... CLR 无法从 COM 上下文 0x5600e8 转换为 COM 上下文 0x560258,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作。这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积。要避免此问题,所有单线程单元(STA)线程都应使用泵式等待基元(如 CoWaitForMultipleHandles),并在运行时间很长的操作过程中定期发送消息。 这是一个错误,还有就是运行到后期报堆栈溢出。条件描述:每次循环都要针对140多万条数据进行筛选,然后在进行update 展开
 我来答
匿名用户
2012-12-12
展开全部
你这个情况, 我感觉应该是属于 处理超时 了.
也就是你一个 数据库命令, 执行时间超过 60秒了, 数据库还没有处理完.
不知道你是什么数据库

如果是 SQL Server 的话, 好像是可以使用一个 异步的处理机制来处理的。
也就是 把命令发给数据库, 然后直接返回。
数据库长时间处理完毕后, 再回调一个方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式