最近用FFmpeg處理視頻, 提示“”當代碼嘗試讀取或寫入無法訪問的記憶體“”,然后程式退出,已經設定全域例外也沒有捕獲到,
C#呼叫非托管方法程式容易奔潰,原因是非退托管代碼報的例外未能被捕獲到,記錄一下兩種解決方法:
一、使用組態檔兼容以前代碼
為了與舊代碼兼容,在app.config添加legacyCorruptedStateExceptionsPolicy元素,
同樣代碼在.Net2.0下面正常,4.0程式就退出 ,
二、方法添加特性
方法上面添加這個特性 [System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]
try catch就可以捕捉AccessViolationException例外,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/3506.html
標籤:C#
上一篇:C#委托和事件實作觀察者模式
