0

VisualStudio2012で作成して使用しているMVC3C#プロジェクトがあります。エンティティフレームワークも使用しています。デバッグすると、「最後のステップからプロセスまたはスレッドが変更されました」という既知の情報が表示されます。デバッグアイコンのメッセージ。しばらくの間、プログラムの動作は変わらなかったので、無視しました。

ただし、最近、コードが実際に2回実行されることを除いて、同じメッセージと動作が発生しました(デバッガーは、ブレークポイントがある実行済みメソッドの先頭にジャンプして戻ります)。つまり、データベースの挿入は少なくとも2回実行されています。私もエンティティフレームワークを使用していることを知っておくと役立つ場合があります。挿入はすべて、単純な挿入を行うストアドプロシージャをインポートすることによって行われます。

コードのどこにも、新しいスレッドを明示的にスピンアップしたり、マルチスレッドを実行しようとしたりしません。私はマルチスレッドにあまり詳しくありませんが、スレッドウィンドウをデバッグして使用すると、7つのスレッドを持つ1つのメインスレッドと2つのワーカースレッドが表示されます。(申し訳ありませんが、私は画像を投稿しますが、私は新しいユーザーであり、彼らは私を許可しません)。

次に、F5キーを押して続行すると、1つのブレークポイントが再びヒットし、メインスレッドが1つ、スレッドが3つ、6つが表示されます。ワーカースレッド。

複数のスレッドがスピンアップしている場所/理由をどこで確認できますか?また、最後のステップのメッセージ以降にプロセスを変更するにはどうすればよいですか?私はこれを何週間も解決策なしで研究してきました。

よろしくお願いします!

4

1 に答える 1

3

それで私は問題が何であるかを理解しました。データベースに2回保存されるという問題は、ページに控えめなajaxが2回(レイアウトページに1回、個々のページに1回)あることが原因でした。

アプリケーションでいかなる種類のスレッドも実行していないため、複数のスレッドが表示される問題はブラウザーの問題のようです。小さなアイコンとメソッドのステップバックは煩わしいですが(そして、ある時点で解決したいのですが)、実際にはアプリケーションの動作を変更しません。

于 2012-11-21T04:35:49.727 に答える