无法为在Visual Studio 2012的后台C#中运行的函数设置断点

本文关键字:运行 函数 断点 设置 后台 Visual Studio 2012 | 更新日期: 2023-09-27 18:19:43

我无法在作为后台线程运行的函数中设置断点。是否可以调试后台线程。

以下是实现:

// Thread settings
SettingTestThread1();
BackgroundWorker testThread1 ;
private void SettingTestThread1()
{
  testThread1 = new BackgroundWorker();

  testThread1.DoWork += new DoWorkEventHandler(testThread1Handler);
  testThread1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(testThread1CompletedHandler);
  thread.Sleep(50) ; testThread1 .WorkerReportsProgress = true;

}

  private void testThread1Handler(object sender, DoWorkEventArgs e)
        {
             //body of the testThread
             func1();
             func2();
             func3();

        }
 private void testThread1CompletedHandler(object sensor, RunWorkerCompletedEventArgs e)
        {
             //Clean up , destruct-or calling, disposing off variable
        }
main()
{
   SettingTestThread1();
   testThread1.RunWorkerAsync();

}

但当我运行这个函数时,我看不到断点击中任何函数1,2或3体。在testThread1.RunWorkerSync之前,我在main中调用SettingTestThread1()。

Rgds,Rp

无法为在Visual Studio 2012的后台C#中运行的函数设置断点

我想这里发生的事情是,在调用后台线程之前,您的程序就已经存在了。尝试在运行后台工作程序后添加睡眠:

public static void main()
{
    SettingTestThread1();
    testThread1.RunWorkerAsync();
    System.Threading.Thread.Sleep(2000);
}

事实上,终止后台线程并不是程序必须退出的。如果您希望主线程等待后台线程结束。。。好吧,不要使用后台线程,而是使用普通线程。