Pointer
Class managing a native pointer.
None of the methods in this class require to be run on the main thread, however they require to be run always on the same thread. To pass it to a different thread, you can change the pointers's thread but beware that the native code, when using the pointer directly, generally does NOT check the pointer's thread.
A pointer manages resources. You should explicitly close it. However, if that is hard to achieve, you can omit that and it will close automatically when it is garbage collected. Note that this can cause problems in working threads and you should prefer to close it there explicitly. Moreover the size of the pointer's data is invisible to the garbage collector which, if large, may put a lot of pressure on memory that the garbage collector won't know how to resolve efficiently (e.g. preferring to collect other objects first).