我为我的游戏私人制作了一个发射器。它运行良好,下载所需的一切 - 但是,由于某种原因,它冻结整个计算机!
冻结通常在做某事时发生,如果我在我的电脑上下载直到下载完成,那么没有任何反应。但是,当我在母亲的电脑上玩游戏“坦克世界”时,计算机几乎立刻冻结了。如果我玩游戏,那么启动器也会冻结我的电脑。
我使用Windows 8,我母亲使用Windows 7。
在我自己的计算机上,当发生这种情况时,我能够非常缓慢地移动鼠标(延迟30秒到2分钟之间),alt + tab赢得工作,控制+ alt +删除将起作用(但是当打开任务管理器没有出现任务管理器)。 在我的母亲和#39;计算机它基本相同,只是除了鼠标工作正常外,一切都被冻结了100%。
仅在下载大型(5MB +)文件时才会发生。当我的启动器下载较小的文件时,没有问题。
我使用以下代码下载文件:
void download(String source, String destination, int size) {
File ofile = new File(System.getProperty("user.dir") + "", destination);
System.out.printf("\nDownloading\n\t%s\nTo\n\t%s\n", source, destination);
try {
if (ofile.exists()) ofile.delete();
if (!ofile.createNewFile()) {
throw new IOException("Can't create " + ofile.getAbsolutePath());
}
int inChar = 0;
URL url = new URL(source);
InputStream input = url.openStream();
FileOutputStream fos = new FileOutputStream(ofile);
for (int i = 0; i < size && inChar != -1; i++) {
int percentage = (int) ((i * 100.0f) / size);
progressBar.setValue(((int) ((percentage * 100.0f) / 100)));
fr.setTitle(ofile.getName() + ": " + progressBar.getValue() + "%" + " Total: " + oprogressBar.getValue() + "%");
inChar = input.read();
fos.write(inChar);
}
input.close();
fos.close();
System.out.println("Downloaded " + ofile.getAbsolutePath());
} catch (EOFException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
在互联网上搜索时,我无法找到这种情况的副本。任何帮助表示赞赏。