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 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch