gpt4 book ai didi

java - 在 Java/Eclipse 中,为什么在我的代码中设置断点会改变该语句的效果?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:52 28 4
gpt4 key购买 nike

我正在 Eclipse 中编写一个 Android 应用程序,并使用 TextView 在屏幕上显示一些文本。不同的线程有时会使用以下代码更改此 View 的文本:

runOnUiThread(new Runnable() {

@Override
public void run() {
view.setText(newLyric);
}
});

我想调试 setText 行来检查传入的字符串是否正确(至于一些文本,它没有被自动换行以适应屏幕,而对于其他文本它是,但这是一个不同的问题)。当我在该行放置断点时,文本总是自动换行。当我禁用/删除断点时,通常不会自动换行(确定性)的文本不会自动换行。

这对我来说意义不大。我看过this question ,我理解这背后的原因,但我不明白为什么这会成为这里的问题。任何人都可以阐明这一点吗?我正在设备上进行测试,是否有任何不同。


编辑:原来这是一个竞争条件,现在我只需要弄清楚如何解决它......显然我只能选择一个“正确”的答案,但谢谢你们所有人的有用评论:)

最佳答案

像这样的事情有时/经常是竞争条件的标志。

放置一个断点可以消除竞争(例如,一个“流氓”线程通过稍后运行来覆盖该值,现在在您的断点被捕获时已经完成)。

或者很明显是Heisenbug :)

关于java - 在 Java/Eclipse 中,为什么在我的代码中设置断点会改变该语句的效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7178753/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com