"尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"

2/22/2017来源:ASP.NET技巧人气:1138

C#下利用ffmpeg频繁解码,导致 System.accessViolationException ,且无法捕捉而使软件经常崩溃。

ffmpeg的原理无法了解,不过现有二法捕捉此异常:

法一:添加HandlePRocessCorruptedStateExceptionsAttribute

[HandleProcessCorruptedStateExceptions]
void DoSomething()
{
    try
    {
        AccessViolationException发生的地方;
    }
    catch (AccessViolationException e)
    {
        //--- 捕捉可能
    }
}
法二:在配置文件中修改

<configuration>
   <runtime>
      <legacyCorruptedStateExceptionsPolicy enabled="true" />
   </runtime>
</configuration>

参考链接AccessViolationExceptionを捕捉できるようにする