# AsyncRenderContext class

Namespace: [Rhino.Render](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.render.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
public abstract class AsyncRenderContext : IDisposable
```

\ingroup rhino_render Inherit from AsyncRenderContext to be able to create asynchronous render engine implementations through RhinoCommon.

## Constructors

- [AsyncRenderContext](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/ctor.md)

## Finalizer

- [~AsyncRenderContext](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/finalize.md)

## Properties

- [Cancel](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/cancel.md): If set to true rendering should be stopped. Is set to true only by StopRendering().
- [RenderThread](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/renderthread.md): Holder for render thread, that gets set through StartRenderThread()
- [RenderWindow](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/renderwindow.md): Handle to the RenderWindow for the instance of this class. This is a convenience property for implementors to use.

## Methods

- [DeleteThis](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/deletethis.md)
- [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/dispose.md): (2 overloads)
- [JoinRenderThread](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/joinrenderthread.md): Join the render thread, then set to null;
- [StartRenderThread](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/startrenderthread.md): Start a new render thread with given function.
- [StopRendering](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.asyncrendercontext/stoprendering.md): Override StopRendering if you need to do additional tasks besides having Cancel set to true. Note: you should always base.StopRendering() in your overriding implementation.
