Package com.azure.core.util
Interface AsyncCloseable
-
public interface AsyncCloseable
Interface for close operations that are asynchronous.Asynchronously closing a class
In the snippet below, we have a long-lived
NetworkResource
class. There are some operations such as closing I/O. Instead of returning a syncclose()
, we usecloseAsync()
so users' programs don't block waiting for this operation to complete.NetworkResource resource = new NetworkResource(); resource.longRunningDownload("https://longdownload.com") .subscribe( byteBuffer -> System.out.println("Buffer received: " + byteBuffer), error -> System.err.printf("Error occurred while downloading: %s%n", error), () -> System.out.println("Completed download operation.")); System.out.println("Press enter to stop downloading."); System.in.read(); // We block here because it is the end of the main Program function. A real-life program may chain this // with some other close operations like save download/program state, etc. resource.closeAsync().block();
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Mono<Void>
closeAsync()
Begins the close operation.
-
-
-
Method Detail
-
closeAsync
Mono<Void> closeAsync()
Begins the close operation. If one is in progress, will return that existing close operation. If the close operation is unsuccessful, the Mono completes with an error.- Returns:
- A Mono representing the close operation. If the close operation is unsuccessful, the Mono completes with an error.
-
-