VS 调试的一个有关问题
VS 调试的一个问题
类似以下的代码
class a
sub aa
for i as integer = 0 to n '注意这里的 n
dim b as new b
b.bb
next
end sub
end class
class b
sub bb
dim t as new thread(addressof bbb)
t.start
end sub
sub bbb
......
在此设断点
......
end sub
end class
问题:
class a 中的 n=0
执行 b.bb 后
如果是生成软件后运行,没有问题(因能正常运行)。
但如果直接 F5 或附加 到进程去调试时。
在设断点的地方会出现两个线程 t(在线程窗口中可以看到)。
并且在断点处的红点上有显示已被其它线程更改的提示。
这明明是 0 to 0 只创建了一个线程,调试时却会多一个?是什么原因呢?软件运行是没有问题的。
求大神回答。
------解决思路----------------------
你在线程窗口中可以看到2个线程,那你能看出2个线程都是在跑什么代码吗
是否主线程也在里面显示?
------解决思路----------------------
您的问题是这样的,子过程b.bbb的要完成的时间比较长一些,
这种状态下 本次的线程任务没有完成的情况下您可能按了两次单击按钮。
这时候本线程不会取消而且生成新的线程运行。会输出两个值.
两个线程运行同一个b.bbb时,其内部发生错误。
类似以下的代码
class a
sub aa
for i as integer = 0 to n '注意这里的 n
dim b as new b
b.bb
next
end sub
end class
class b
sub bb
dim t as new thread(addressof bbb)
t.start
end sub
sub bbb
......
在此设断点
......
end sub
end class
问题:
class a 中的 n=0
执行 b.bb 后
如果是生成软件后运行,没有问题(因能正常运行)。
但如果直接 F5 或附加 到进程去调试时。
在设断点的地方会出现两个线程 t(在线程窗口中可以看到)。
并且在断点处的红点上有显示已被其它线程更改的提示。
这明明是 0 to 0 只创建了一个线程,调试时却会多一个?是什么原因呢?软件运行是没有问题的。
求大神回答。
------解决思路----------------------
你在线程窗口中可以看到2个线程,那你能看出2个线程都是在跑什么代码吗
是否主线程也在里面显示?
------解决思路----------------------
您的问题是这样的,子过程b.bbb的要完成的时间比较长一些,
这种状态下 本次的线程任务没有完成的情况下您可能按了两次单击按钮。
这时候本线程不会取消而且生成新的线程运行。会输出两个值.
两个线程运行同一个b.bbb时,其内部发生错误。