无法为在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
我想这里发生的事情是,在调用后台线程之前,您的程序就已经存在了。尝试在运行后台工作程序后添加睡眠:
public static void main()
{
SettingTestThread1();
testThread1.RunWorkerAsync();
System.Threading.Thread.Sleep(2000);
}
事实上,终止后台线程并不是程序必须退出的。如果您希望主线程等待后台线程结束。。。好吧,不要使用后台线程,而是使用普通线程。