none
Windowsフォームクラスの中のスレットで、ブレークポイントを設定すると応答がなくなる RRS feed

  • 質問

  • こんにちは

    C#のブレークポイントについて質問します。

    下記のようにWindowsフォームクラスの中でスレッドを作り、①行に ブレークポイントを設定すると、止まるのですが応答が無くなります

    Microsoft Visual Studio 2005 Team Suite Service Pack 1でアップデートしていない場合は、問題なくブレークします
    Windowsフォームクラスでない場合、問題なくブレークします

    別のPCにインストールしてみたのですが同じです

     

    どなたか解決方法をご存知でしたら、教えていただけないでしょうか

    private void Form1_Load(object sender, EventArgs e)
    {
         threadReceiveLoop = new Thread(new ThreadStart(ReceiveLoop));
         threadReceiveLoop.IsBackground = true;
         threadReceiveLoop.Start();
    }

    private void ReceiveLoop()
    {
         int intTestL = 0;
         while (true)
         {//無限ループ
    ①        intTestL++;
              Thread.Sleep(500); 
         }        

    }

    2007年12月19日 5:55

回答

  • ここに同じ話がありました。

    Cannot debug a form method called from a thread
    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=131836&SiteID=1

     

    そこに書かれていますが、メニューの
    「オプション」-「デバッグ」-「全般」
    の中の
    「変数ウィンドウのオブジェクト上で ToString() を呼び出す(C# のみ)」
    のチェックを解除すると、先ほど書いたウィンドウを表示しておいても、こちらでは固まることは無くなりました。

    2007年12月20日 2:04

すべての返信

  • 解決方法という訳ではありません。
    こちらでも再現しましたので、そのご報告です。
    最初は再現できなかったんですが、条件があるようでした。

     

    「自動変数」や「ローカル」のウィンドウを表示していない場合は問題ないのですが、それらのウィンドウを表示しておくと固まりました。
    # こちらでは、30秒ほど固まった後に復帰しましたが、その後はブレークポイントで止まらなくなりました。

     

    また、上記ウィンドウを表示していなくても、例えば「イミディエイト ウィンドウ」で this を表示しようとすると、同様に固まりました。

     

    QnA さんのところでは、上記ウィンドウの表示有無は関係ないでしょうか?
    いずれにしても、フィードバック行きのような気がします。

    2007年12月20日 1:47
  • ここに同じ話がありました。

    Cannot debug a form method called from a thread
    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=131836&SiteID=1

     

    そこに書かれていますが、メニューの
    「オプション」-「デバッグ」-「全般」
    の中の
    「変数ウィンドウのオブジェクト上で ToString() を呼び出す(C# のみ)」
    のチェックを解除すると、先ほど書いたウィンドウを表示しておいても、こちらでは固まることは無くなりました。

    2007年12月20日 2:04
  • TH01さん 返信ありがとうございます。

     

    「自動変数」のウィンドウを開いていました。

     

    変数ウィンドウのオブジェクト上で ToString() を呼び出す(C# のみ)のチェックを外すと、固まらなくなりました。

     

    大変参考になりました。

     

     

     

     

    2007年12月20日 10:31
  • こんにちは。中川俊輔 です。

     

    TH01 さん、大変参考になる回答、そして再現テストまでしていただき、ありがとうございます。

     

    QnAさんへ

    問題が解決されたようなので、TH01 さんの回答へ回答済みチェックをつけさせていただきました。

    QnAさんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

     

    2007年12月25日 6:32