我用 JAVA 开发了一个 GUI,在执行了一些操作(例如写入 Excel)后,会向客户端发送一封带有附件的电子邮件,但发送电子邮件大约需要 5 秒,有时需要连续发送 100 封电子邮件,但我不知道用户不会等待电子邮件发送,因为这对他来说并不重要。 所以我尝试创建一个发送电子邮件的线程。类似于:
for(int i=0; i<numEmail;i++){
info=getSomething(i);
new Thread()
{
public void run() {
sendEmail(info);
System.out.println("Email sent");
}
}.start();
}
虽然我创建了新主题,但每封电子邮件都带有第一封电子邮件的信息,而不是每封电子邮件都带有不同的信息。
我是一名新手java程序员,对线程知之甚少。我只需要不卡住 GUI 来发送电子邮件。我从来没有发送过多少电子邮件,但它们都有不同的信息要发送。
最佳答案
您错过了几个大括号。线程始终以 i 的最后一个值运行。
for(int i=0; i<numEmail;i++){
info=getSomething(i);
new Thread()
{
public void run() {
sendEmail(info);
System.out.println("Email sent");
}
}.start();
}
关于java - 线程。继续使用相同的信息(运行时可变),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22992046/