Asynchronous Tasks"

From Documentation
m ((via JWB))
Line 25: Line 25:
 
=Version History=
 
=Version History=
 
{{LastUpdated}}
 
{{LastUpdated}}
{| border='1px' | width="100%"
+
{| class='wikitable' | width="100%"
 
! Version !! Date !! Content
 
! Version !! Date !! Content
 
|-
 
|-

Revision as of 02:58, 12 January 2022


Asynchronous Tasks


If you run an application logic in a task thread (not in a servlet thread), and you don't want to update UI in the same thread. All you need to do is:

  1. enable server push
  2. Implement the UI updates in an event listener (implement EventListener or SerializableEventListener).
  3. Execute the listener asynchronously by Executions.schedule(Desktop, EventListener, Event).

Here is the pseudo code:

    Executions.schedule(desktop,
        new EventListener() {
            public void onEvent(Event event) {
                updateUI();
            }
        }, event);

Notice that Executions.schedule(Desktop, EventListener, Event) can be called anywhere, including another event listener or a task thread. In other words, you don't have to fork a new thread to use this feature.

Notice that, since there is at most one thread to access the UI of a given desktop, the event listener must NOT be time-consuming. Otherwise, it will block other event listeners from execution. Thus, if you have a long operation to do, you could use event queue's asynchronous event listener, or implement it as a synchronous task and handle lengthy operation outside of the activation block.


Version History

Last Update : 2022/01/12


Version Date Content
5.0.6 November 2010 This feature was introduced. With 5.0.5 or prior, you have to use Event Queues or Synchronous Tasks.



Last Update : 2022/01/12

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.