Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 远程获取通知以更新进度监视器_Java_Multithreading_Progressmonitor - Fatal编程技术网

Java 远程获取通知以更新进度监视器

Java 远程获取通知以更新进度监视器,java,multithreading,progressmonitor,Java,Multithreading,Progressmonitor,我有一个包含服务器和前端部件的复杂应用程序 我正在尝试在前端部分根据服务器部分中发生的操作更新进度监视器。来自服务器部件的操作从前端远程调用。但是我在获取更新监视器的实时通知时遇到了问题 我的代码结构有点像这样: class frontend_class1{ public void method { List<String> strings = initializeStrings(); progressMonitor.beging

我有一个包含服务器和前端部件的复杂应用程序

我正在尝试在前端部分根据服务器部分中发生的操作更新进度监视器。来自服务器部件的操作从前端远程调用。但是我在获取更新监视器的实时通知时遇到了问题

我的代码结构有点像这样:

class frontend_class1{
       public void method {
          List<String> strings = initializeStrings();
          progressMonitor.begingTask("", noOfSteps);
          reponse = frontend_class2.method2(strings);
          progressMonitor.worked(1);
       }

class frontend_class2{
       public responseType method2(List<String> strings){
          ServerClassRemote remote = new ServerClassRemote();
          response = remote.serverMethod(strings);
          return response;
       }

class server_class{
       public serverMethod(List<String> strings){
          otherMethod(strings);
       }
       public otherMethod(List<String> strings){
          someOtherMethod(strings);
       }
       public someOtherMethod(List<String> strings){
          for (String s:Strings){
              doSomethingWithString(s);
              setStatus(true);
          }
       }
       public setStatus(boolean status){
          myVar = status;
       }
       public boolean getStatus(){
          return status;
       }
new Thread(new Runnable() {
            public void run() {
                if (remote.getChanged()) {
                    remote.setChanged(false);
                }
            }
        }).start();

但它们不会同时运行。如何在列表中的字符串每次完成时获取状态,以便更新进度监视器?

您可以将状态设置为
someOtherMethod
而不是将更新报告与新线程一起发送到前端。 如果您还没有发送此更新的方法,您可能需要让fornt_end运行某种服务器来接收至少这些消息。也许一些RMI应该很容易实现