要给客户的一个jar包提供这样的功能:
可以调用一个静态方法
这个时候我就会弹出一些对话框(这个对话框是一个线程,这个线程可能会生成另外的线程)这个是系统实现的我不能控制他。
等待对话框的所有事情做完
然后返回等待对话框返回了
再返回值
示例代码如下:
- Java code
boolean static do(oneObj a){ Obj a = new Obj(a)//此类的构造方法会产生一个对话框,这个对话框是宁外一个线程 return a.某属性}
我得怎么做才能让return这句 等他前面那句里面的另外线程 执行完了才可以返回
本来是j2me但是j2me人气好低啊!
跑这里来发帖吧!拜求答案
最好能给哥示例代码
------解决方案--------------------------------------------------------
join()方法。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
用信号量啊 线程的同步互斥都得用信号量来控件的嘛~ 这个类似于一个bool的开关 感觉用这个好控制些 如果数据处理结束就是true 不然就false true的时候让他出ui false的时候阻塞~
------解决方案--------------------------------------------------------
伪代码实现如下:
- Java code
Object get() throws Throwable{Object obj = new Object();//将你创建UI的步骤放到一个线程里面去,这里的obj不能为基本数据类型CreateUIThread t = new CreateUITHread(obj)t.start();t.join();print(obj);return obj;}class CreateUIThread() extends Thread{UICompoenent ui = null;Object obj = null;public CreateUIThread(Object obj){//这个是你需要返回的obj;this.obj = obj;}public void run(){//创建UI,并且等待用户的响应,UI里面都有自己处理事件响应的机制,//比如输入后确定,这里将OBJ作为参数传递进去,并且对其进行处理,也可以在UI里面创建新的obj//按LZ说法这里的创建过程是另外一个线程.ui = <Create UI>(obj);//强制等待用户输入,UI窗口都会有个句柄,表示这个窗口存在或有效的//比如点击确定或取消这个窗口都会消失while(ui.exist){//避免撑爆CPU<catch exception>Thread.sleep(500);}}}
------解决方案--------------------------------------------------------
Mian方法 调用 你的静态方法 mainFunction
Java code
public class Main{
public static String mainFunction()
{
Object c = new Object();
UI ui = new UI(c);//加载UI的线程
ui.start();
synchronized(c){
try {
c.wait();//等待
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("静态方法完成");
return "OK";
}
public static void main(String[] args) {
Main.mainFunction();
}
}
//UI加载的线程
Java code
public class UI extends Thread {
private Object obj;
public UI(Object obj){
this.obj = obj;
}
public void run()
{
System.out.println("加载UI..");
try {
sleep(1000);//模拟加载UI花的时间
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(" UI.加载完成.");
synchronized (obj){
obj.notify();
}
}
}
PS----我也不熟练,可能有其他问题。但就这个效果而言 还是能满足需求的。十一文 多给点分分吧。。技术区 还木1000分。不好给你转分 o(╯□╰)o