Jobernowl 2011-07-07 21:42 采纳率: 100%
浏览 164
已采纳

怎么在一个线程后返回一个结果(具体请进来看)

以下是SearchEquipments.java类计算方法
[code="java"]
public void start(Skill skill){
this.equipmentList.clear();
stopFlag=false;
boolean isequipment;
int[] SID=xml.getSIDByName(skill.getSkillname());
int[] skillNum=skill.getSkillnum();
for(int a=0;a<armsize;a++){
for(int b=0;b<bodysize;b++){
for(int c=0;c<headsize;c++){
for(int d=0;d<legsize;d++){
for(int e=0;e<wstsize;e++){
Equipment equipment=new Equipment(armList.get(a),bodyList.get(b),headList.get(c),legList.get(d),wstList.get(e),SID,skillNum);
isequipment=equipment.isequipment();
if(stopFlag) break;
if(isequipment){

this.equipmentList.add(equipment);
}
this.moveProgressBar(a);
}
}
}
}
}
System.out.println(this.getEquipmentList().size());
this.setButtonIsEnabled(true);
}
[/code]

以下Main.java(开始按钮selection事件)
[code="java"]
new Thread(){
public void run(){
se.start(skill);
}
}.start();
[/code]

如上面所示 我在一个开始按钮上开启一个线程调用一个方法 请问我该如何等待这个线程运行结束并把结果返回到这里来呢 我本来打算单击这个按钮开一个线程 然后把结果返回来显示在界面上 也就是代码必须都写在这个按钮的事件上?希望大大能帮忙解答问题 我该如何做 我用的是swt来做界面的

  • 写回答

4条回答 默认 最新

  • xiaoyingSUN 2011-07-07 23:11
    关注

    [quote]不用等线程结束,直接处理结束要做的事情就行

    Java代码

    //循环结束

    Display.getCurrent().asyncExec(new Runnable() {

    public void run() {

    //显示处理结果

    }

    };

    quote]

    可是貌似 Display().getCurrent().asyncExec()前提要看之前Thread有没有Display。。。
    LZ debug下吧,我记得以前我用的时候会有NullPointerException

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题