问个查百度也没能解决的问题,那位大神帮我解决掉,100分送上

倾心软件 2018-11-09 10:27:39


问个查百度也没能解决的问题,那位大神帮我解答一下,100分送上

问题描述:
是这样的,C#中要操作内存,需要开启
unsafe//启动不安全代码
{
…………
}
但这个是非托管代码段,Try Catch 捕捉不到错误(如图,我在unsafe 外部和内部都加了出错处理,但仍然捕捉不到错误) ,一但在这个unsafe代码段中出错,程序直接崩了。有什么办法能跳过错误,或者转到错误
处理部份继续执行吗?

补充一下出错时的图片

...全文
130 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
倾心软件 2018-11-15
  • 打赏
  • 举报
回复
引用 5 楼 qq997974830 的回复:
试试这个 [HandleProcessCorruptedStateExceptions] 在你的方法前面加上这个 再用try 去捕获异常


感谢你的解答,加上[HandleProcessCorruptedStateExceptions] 程序不崩盘了.
xuzuning 2018-11-12
  • 打赏
  • 举报
回复
Try Catch 包住 unsafe 代码段
将 unsafe 代码封入独立项目
处理图片可用内存法,效率并不低
良朋 2018-11-12
  • 打赏
  • 举报
回复
引用 8 楼 fsj43 的回复:
[quote=引用 6 楼 itleon 的回复:]
首先,看一下你的图片是不是被加密或加壳了,如果有就会报以上语焉不详的错误,我遇到过。
另外,你的图片是灰度图片还是RGBa图片? 如果是RGBa,你的y循环就不能用Height,要用另外一个值。


我图像是灰度图,之所以操作内存是因为C#的GDI+不支持灰度图像的局部复制。所以我只能内存中截取我要的部份图像数据。这个错误产生的原因是,程序正在做图像处理时,用户突然按下急停键。那么我要立即响应,中断了涵数中运行,内存出错。这种急停事件,出错正常,如何安全退出,是我主要考虑的问题。[/quote]

急停别断电啊,电机急停断电,你的电脑别断电,很多程序Timer的,你可以暂停Timer.
倾心软件 2018-11-12
  • 打赏
  • 举报
回复
引用 9 楼 zhoujk 的回复:
C#做图像算法可以不用指针,直接从BITMAP读取到内存数组,做完再写到BITMAP就行了,没这么复杂。我的资源里有相关的代码。

不用指针,你是说用取图像点的方法吗,我一个图像大约有2亿个象素点,如果不用指针,运行速度非常慢。
zhoujk 2018-11-11
  • 打赏
  • 举报
回复
C#做图像算法可以不用指针,直接从BITMAP读取到内存数组,做完再写到BITMAP就行了,没这么复杂。我的资源里有相关的代码。
倾心软件 2018-11-11
  • 打赏
  • 举报
回复
引用 6 楼 itleon 的回复:
首先,看一下你的图片是不是被加密或加壳了,如果有就会报以上语焉不详的错误,我遇到过。
另外,你的图片是灰度图片还是RGBa图片? 如果是RGBa,你的y循环就不能用Height,要用另外一个值。


我图像是灰度图,之所以操作内存是因为C#的GDI+不支持灰度图像的局部复制。所以我只能内存中截取我要的部份图像数据。这个错误产生的原因是,程序正在做图像处理时,用户突然按下急停键。那么我要立即响应,中断了涵数中运行,内存出错。这种急停事件,出错正常,如何安全退出,是我主要考虑的问题。
vokxchh 2018-11-11
  • 打赏
  • 举报
回复
可以不用unsafe的
https://download.csdn.net/download/vokxchh/5330908
袋袋呆呆待待 2018-11-09
  • 打赏
  • 举报
回复
试试这个 [HandleProcessCorruptedStateExceptions] 在你的方法前面加上这个 再用try 去捕获异常
倾心软件 2018-11-09
  • 打赏
  • 举报
回复
现在问题是,C#中不提供出错处理机制,就只能看着unsafe中崩盘,是我没办法,还是C#的BUG导制的。真无解了吗?
cheng2005 2018-11-09
  • 打赏
  • 举报
回复
你自己都知道unsafe了,当然就自己负责自己啦。
不如你去问一问C++程序怎么防止崩溃好了,很多人会给你答案的。
倾心软件 2018-11-09
  • 打赏
  • 举报
回复


出错不能进行出错处理函数,直接报错,这样的话,程序就崩盘了。有什么好办法让这个非法操作导致的错误跳过吗?
倾心软件 2018-11-09
  • 打赏
  • 举报
回复
在线等.....
良朋 2018-11-09
  • 打赏
  • 举报
回复
上面我的回帖有错误。 找了一个博客,你自己参考下吧
https://www.cnblogs.com/dearzhoubi/p/8782808.html
良朋 2018-11-09
  • 打赏
  • 举报
回复
首先,看一下你的图片是不是被加密或加壳了,如果有就会报以上语焉不详的错误,我遇到过。
另外,你的图片是灰度图片还是RGBa图片? 如果是RGBa,你的y循环就不能用Height,要用另外一个值。

110,537

社区成员

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

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

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