-6

我有一个多线程应用程序的问题,绑定到按钮停止线程

thread = NULL;

之后我启动另一个线程(使用相同的变量)

thread = new Thread(this, "game");
thread.start();

在新线程之后,线程仍然为空,我不知道为什么请帮忙。

4

1 回答 1

0

在没有更多信息的情况下,以下内容仅是猜测。请在将来显示更多详细信息并解释您为调试问题所做的工作。

在新线程之后,线程仍然为空,我不知道为什么请帮忙。

构造函数不可能返回 anull所以其他事情正在发生。

Thread thread = null;
thread = new Thread(this, "game");
// thread is guaranteed to be non-null here

也许您正在两个线程之间共享线程字段?例如,也许您的主线程启动了后台线程,而 UI 线程正在尝试读取它?在这种情况下,您应该使线程volatile在线程之间共享。

volatile Thread thread = null;

如果它已经是不稳定的,那么您正在处理该thread字段的不同实例。也许该thread字段应标记为static

于 2013-07-17T15:17:39.693 回答