gpt4 book ai didi

java - 为什么这个线程在这种情况下不停止?

转载 作者:行者123 更新时间:2023-12-02 08:11:40 26 4
gpt4 key购买 nike

我启动了一个新线程,将照片从手机上传到计算机网络服务器。

if (CMenu.retCommand == transferer)
{
thrdTrsfr = new Thread(this);
thrdTrsfr.start();
}

public void run() {
if (Thread.currentThread() == thrdTrsfr)
{
if (vButtonPhotos.size() > 0)
transfererPhotos("http://192.168.1.123/imfmobile/photoj2meupload/uploadphoto.php");
else
afficheAlert("Aucune photo à transférer !");
}
}

上传完成后我停止了线程。我在上传之前测试了 Activity 线程数。当我在停止上传线程后测试正在运行的线程数时,该数字没有变化。我必须导航回主屏幕,然后 Activity 线程的数量与上传之前相同。我使用此代码来停止上传线程:

if (thrdTrsfr != null && thrdTrsfr.isAlive())
{
thrdTrsfr.interrupt();
thrdTrsfr = null;
}

那么为什么我必须进入主屏幕才能停止线程?

最佳答案

是否是 transfererPhotos() 未完成,可能是由于等待 IO 读取从未到达的字节?如果是这样,那么线程将永远保持 Activity 状态,或者直到被中断(正如您所做的那样)。

顺便说一句,我看不到当前线程的测试有任何值(value):

if (Thread.currentThread() == thrdTrsfr) // Huh?

关于java - 为什么这个线程在这种情况下不停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7304617/

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