# Class BackgroundOperation<T>

java.lang.Object
org.apfloat.samples.BackgroundOperation<T>

public class BackgroundOperation<T> extends Object
Class for running an `Operation` in the background in a separate thread. The operation is executed using the ExecutorService retrieved from `ApfloatContext.getExecutorService()`.

Version:
  1.14.0
Author:
  Mikko Tommila

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BackgroundOperation(Operation<T> operation)`
  Runs an operation in the background in a separate thread.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `cancel()`
  Cancel the operation by interrupting the thread executing it.
  `T`
  `getResult()`
  Get the result of the operation.
  `boolean`
  `isFinished()`
  Check if the operation has been completed.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### BackgroundOperation

    public BackgroundOperation(Operation<T> operation)
    Runs an operation in the background in a separate thread. The execution is started immediately.
    Parameters:
      `operation` - The operation to execute.

- ## Method Details

  - ### isFinished

    public boolean isFinished()
    Check if the operation has been completed.
    Returns:
      `true` if the execution of the operation has been completed, otherwise `false`.

  - ### cancel

    public void cancel()
    Cancel the operation by interrupting the thread executing it.
    Since:
      1.14.0

  - ### getResult

    public T getResult()
    Get the result of the operation. This method blocks until the operation has been completed.
    Returns:
      Result of the operation.
    Throws:
      `RuntimeException` - If an exception was thrown by the executed operation.