>>788
あくまで私一人の考えですが・・・

[1] Invoke を使うと >>779 に書いたような理由でデッドロックするので
 Parallel.ForEach でUIスレッドを使いたいなら >>773 のようにすべき
[2] しかし、同じく >>779 に書いたように Parallel.ForEach はUIスレッドを
 つかんだまま並列処理を行うのでデータグリッドの更新処理だけ
 Parallel.ForEach から切り出してもほとんど同じなのでは?
 (一応 localFinally 中も他のスレッドは動けるので
   そこで更新処理を行う方がいい場合もあるかもしれない)
[3] 並列処理が必要なほど大きな処理を行うなら、
 一度UIスレッドを手放す選択肢も考えてみては?

ただ、Invoke がダメだと考えている人間自体が私だけのような気もするので
他の方の意見も聞いてみたほうがいいと思います
あと、[3] に関しては場合によりけりだと思うので、
具体的な処理内容を教えていただければ私の考えをお伝えしたいと思います