| COBOL | Java |
|---|---|
*> Calling async methods
invoke await type Task::Delay(1000)
declare items = await ProcessItemsAsync("user", 8)
*> Run code on background thread
await type Task::Run(
delegate
invoke type Console::WriteLine("On background thread")
end-delegate)
*> An async void method
method-id button1_Click async-void (sender as object,
e as type EventArgs).
set button1::Enabled to false
invoke await type Task::Delay(1000)
set button1::Enabled to true
end method.
*> An async method returning no result
method-id ProcessAsync() async.
invoke await type Task::Yield()
invoke type Console::WriteLine("async...")
end method.
*> An async method returning a result
method-id ProcessItemsAsync async (#type as string,
#count as binary-long)
yielding items as string occurs any.
invoke await type Task::Delay(1000)
set items to table of ("a", "b", "c")
end method.
*> An async value-task method returning a result
method-id MaybeProcess async-value (x as condition-value)
yielding result as string.
if x
invoke await type Task::Delay(1000)
set result to "x"
else
set result to "y"
end-if
end method.
|
// Java has no async coroutine support. // Similar behavior is typically achieved by using // executors. |
Portions of these examples were produced by Dr. Frank McCown, Harding University Computer Science Dept, and are licensed under a Creative Commons License.