startWith >>-startWith(messagename,arguments)-------------------------------->< Returns a message object (see ) and sends it a [start] message to start concurrent processing. The object receiving the message [messagename] processes this message concurrently with the sender's continued processing. The [messagename] can be a string or an array. If [messagename] is an array object, its first item is the name of the message and its second item is a class object to use as the starting point for the method search. For more information, see . The [arguments] argument must be a single-dimension array instance. Any values contained in [arguments] are passed to the receiver as arguments for [messagename] in the order you specify them. When the receiver object has finished processing the message, the message object retains its result and holds it until the sender requests it by sending a [result] message. For further details, see . Object class - startWith method world=.WorldObject~new msg1=world~startWith("HELLO", .array~of("Fred") /* same as next line */ msg2=.message~new(world,"HELLO", 'i', .array~of("Fred"))~~start /* same as previous line */ say msg1~result /* Produces Hello Fred 21:04:25.065000 */ /* for example */ say msg2~result /* Produces Hello Fred 21:04:25.081000 */ /* for example */ ::class 'WorldObject' public ::method hello use arg name return "Hello" name time('L') |