C#问题,分数多多

来源:百度知道 编辑:UC知道 时间:2024/09/20 23:48:42
我在调试程序的时候,程序(做大量的数据库操作~~返回结果比较长)
运行时稍微移动窗口下鼠标就会变成那种正在加载的状态,就像两个漏斗~~,然后程序就会无法响应,进度条(循环DataTable行)不动~~但是过段时间数据库操作执行完成后它仍然会返回结果,怎么能解决这种情况~~~
时间长了会这样
CLR 无法从 COM 上下文 0x1975a8 转换为 COM 上下文 0x197438,这种状态已持续 60 秒。拥有目

标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运

行时间非常长的操作。这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随

时间不断累积。要避免此问题,所有单线程单元(STA)线程都应使用泵式等待基元(如

CoWaitForMultipleHandles),并在运行时间很长的操作过程中定期发送消息。

运行的时候内存和CPU也没占多少

承诺:分数多多,先扔200
大哥,你说的是啥?发错了吧?

我还是不知道你说的是啥?

对数据库操作过长是会那样的.
用多线程也不能很好的解决窗体卡住或者空白的问题;做个进度组件吧,用于友好的提示,主要是要让用户知道目前持续在做什么.

"CLR 无法从 COM 上下文 0x1975a8 转换为 COM 上下文 0x197438,这种状态已持续 60 ... " 不理解这段话,太专业了, 你要不要把Visual Studio 重装下,在试下.

在执行数据库操作的时候用线程来做吧.主线程执行大段代码.会造成无法响应的..

这种情况下用多线程吧..

至于那个异常 如果不想要那个异常 可以找到异常选项忽略掉它..

VS始终是有缺陷的,很多莫名其妙的问题有可能是你的某次错误的代码导致,对程序文件产生了影响,建议重装程序,报告完毕o(∩_∩)o...哈哈

是不是哪里代码写的不对,死循环了??