レスありがとうございます。

>>818
現時点でも実行速度に問題ありなので、Ruby側の処理はこれ以上増やしたくありません。
でも、アプリ落ちるよりはいいので、対策がみつからなかったら
その手でいこうと思います。

>>819
Cでなら817のように書くことで例外を補足できるようです。
(rb_protect のなかで setjmp、rb_funcallのなかでlongjmpするようです)
ただそのためだけにdllを増やしたくない、
できれば、C#だけで処理を行いたいというところです。

p/invoke って setjmp/longjmp する関数ってうまく扱えないんでしょうか?
(ぐぐりましたがよくわかりませんでした)