LoaderLockが検出されましたのエラーを修正するには?

解決


fumo  2008-11-13 18:20:50  No: 140837  IP: 192.*.*.*

WindowsXP(SP2) VB2005 Oracle9i

①DBからデータをDataSetにバインドする

②データセットに行を追加。
J20_DataSet.Tables("J20F").Rows.Add("オーバー納品", W_Date, W_Suryo, W_Suryo, 0, "オーバー納品", 0, "99")

③ある条件を満たしたら追加した行をデータセットから削除。

J20_DataSet.Tables("J20F").Rows.RemoveAt(追加した行)

④フォームの×ボタンでフォームを閉じる。

「呼び出し履歴のフレームにシンボルは読み込まれません。
  ソース コードを表示できません。」

のメッセージの後に、

LoaderLock が検出されました。
Message: OS ローダー ロック内でマネージ実行を試行しました。
DllMain またはイメージ初期化関数内部でマネージ コードを実行しないで
ください。この動作は、アプリケーションをハングさせる原因となる
可能性があります。

のエラーが出ます。どなたか解決方法をご教授願います。

編集 削除
魔界の仮面弁士  2008-11-13 18:53:42  No: 140838  IP: 192.*.*.*

手元の環境では再現しないので、思いつくところで…
-------------

(1) データ操作のために、別スレッドを起動していませんか?

(2) iTunes をインストールしていませんか?
http://social.msdn.microsoft.com/forums/en-US/clr/thread/fd3b1842-531e-42c0-9a40-b78b77e14abb/


> どなたか解決方法をご教授願います。
何か問題があってエラーになっていると思うので、原因は明らかに
しておいた方が良いと思いますが、メッセージが出ないようにするなら、

1) メニューから [デバッグ] - [例外] を選択。
2) [例外]ダイアログで [Managed Debugging Assistants] を展開。
3) [LoaderLock] の [スローされるとき] をオフにする。

とすると回避できるかも知れません。それでも駄目ならば、レジストリの
HKLM\SOFTWARE\Microsoft\.NETFramework で MDA を 0 にするとか。

編集 削除
fumo  2008-11-14 08:42:53  No: 140839  IP: 192.*.*.*

魔界の仮面弁士さんレスありがとうございます。

>(1) データ操作のために、別スレッドを起動していませんか?

現状はフォームロードでDBに接続してトランザクションを開始
しています。

Private Trn As OracleTransaction
'-- 接続文字列セット --
OraCon.ConnectionString = "User ID= " & CnUser & ";Password=" &                                 CnPass & ";Data Source=" & CnServ
OraCmd.Connection = OraCon
OraCon.Open()
Trn = OraCon.BeginTransaction

としています。これが原因かと思いFromClosingイベントで
Trn.Rollback()
OraCon.Close()
OraCon.Dispose()
を実行してもエラーが発生します。
やり方を間違えているのでしょうか?
上記以外で問題のデータセットを作成
する前に4つデータセットを作成しています。

>(2) iTunes をインストールしていませんか?
>http://social.msdn.microsoft.com/forums/en-US/clr/thread/fd3b1842->531e-42c0-9a40-b78b77e14abb/

iTunes  はインストールしていません。
参照アドレスを見たのですが英語でよく分かりません^^;
インストールするだけで駄目なのでしょうか?
それとも iTunes を起動しながらのVB2005の作業が
駄目なのでしょうか?

>1) メニューから [デバッグ] - [例外] を選択。
>2) [例外]ダイアログで [Managed Debugging Assistants] を展開。
>3) [LoaderLock] の [スローされるとき] をオフにする。

アドバイスのやり方でメッセージはでないようになるのですが
ビルドしてエグゼを実行したらエラーが発生します。

編集 削除
fumo  2008-11-14 14:49:56  No: 140840  IP: 192.*.*.*

解決しました。

掲示したコードと違う箇所(今回のエラーとは無関係)
のコードを変更したらエラーが発生しなくなりました。
(※魔界の仮面弁士さんからのアドバイスのメッセージを
表示しないようにする[LoaderLock] の [スローされるとき] をオフにする。
はしていない状態です。)

結局原因はわからないままエラーが発生しなくなりました。

魔界の仮面弁士さんアドバイスありがとうございました。

編集 削除