Home
  • Manual
  • Node Index
  • API
  • Changelog
Show / Hide Table of Contents
  • InsaneScatterbrain
    • Calc
    • Color32EqualityComparer
    • EqualityComparer
    • TrigMath
  • InsaneScatterbrain.DataStructures
    • Pair<T>
  • InsaneScatterbrain.DelaunatorSharp
    • DelaunatorNoAlloc
  • InsaneScatterbrain.Dependencies
    • DependencyContainer
    • DependencyNotFoundException
    • IDependencyContainer
  • InsaneScatterbrain.Editor.Services
    • Assets
  • InsaneScatterbrain.Editor.Updates
    • UpdateAction
    • Updater
  • InsaneScatterbrain.Extensions
    • ColorExtensions
    • ExceptionExtensions
    • FieldInfoExtensions
    • HashSetExtensions
    • IntExtensions
    • ListExtensions
    • RandomExtensions
    • SortedListExtensions
    • StackExtensions
    • Texture2DDrawingExtensions
    • Texture2DExtensions
    • TypeExtensions
    • Vector2Extensions
    • Vector2IntExtensions
  • InsaneScatterbrain.MapGraph
    • AddFloatsNode
    • AddFloatToVector2Node
    • AddFloatToVector3Node
    • AddIntsNode
    • AddIntToVector2IntNode
    • AddIntToVector3IntNode
    • AddRandomEdgesNode
    • AddVector2IntsNode
    • AddVector2sNode
    • AddVector3IntsNode
    • AddVector3sNode
    • ApplyMaskNode
    • Area
    • AreaExtractor
    • AreaGraph
    • AreaGraphBuilder
    • AreaGraphEdge
    • AreaGraphEdgePool
    • AreaGraphPool
    • AreaPool
    • AreasCentroidPointsNode
    • AreasSpecialBorderPointsNode
    • AreasToPointsNode
    • BasicMathOperationNode<T>
    • BasicMathOperationNode<T1, T2, TOut>
    • BspLeafCenterPointsNode
    • BspNode
    • BspNodePool
    • BspTree
    • BspTreePool
    • CellularAutomataSmoothingNode
    • ChangeTextureSizeNode
    • ClampFloatsNode
    • ClampIntsNode
    • CollectionPool<TCollection, TValue>
    • ConnectAreaGraphCentroidsNode
    • ConnectAreaGraphClosestBorderPointsNode
    • ConnectAreaGraphRandomPointsNode
    • ConnectedPointsToPointsNode
    • ConvertTextureToTilemapNode
    • CopyTilemapDataNode
    • CornerPointsNode
    • CurrentOrEmptyTextureNode
    • DataToTextureNode
    • DictionaryPool<TDictionary, TKey, TValue>
    • DivideFloatsNode
    • DivideIntsNode
    • DivideVector2ByFloatNode
    • DivideVector2IntByIntNode
    • DivideVector2IntsNode
    • DivideVector2sNode
    • DivideVector3ByFloatNode
    • DivideVector3IntByIntNode
    • DivideVector3IntsNode
    • DivideVector3sNode
    • DrawAreasNode
    • DrawBorderNode
    • DrawCirclesNode
    • DrawConnectionsBiasedRandomWalkNode
    • DrawGridNode
    • DrawManhattanConnectionsNode
    • DrawNoiseThresholdNode
    • DrawOutlineNode
    • DrawPointsNode
    • DrawRectsNode
    • DrawShortestPathNode
    • EmptyTextureNode
    • ExtractAreasNode
    • ExtractColorNode
    • ExtractPointsNode
    • ExtractPointsWithNeighboursNode
    • FlipTextureNode
    • GenerateAreaGraphNode
    • GenerateMstAreaGraphNode
    • GenerateRstAreaGraphNode
    • HexagonalGridOffsetType
    • InvertMaskNode
    • IObjectType<TEntry, TObject>
    • IObjectTypeEntry<T>
    • IObjectTypeSet<TType, TObject>
    • ListPool<TValue>
    • LoadTextureData
    • MapGraphGraph
    • MapGraphTilemapPrefab
    • Mask
    • MaskPool
    • MaxFloatsNode
    • MaxIntsNode
    • MergeAreasNode
    • MergeMasksNode
    • MergePointsNode
    • MergeTilemapsNode
    • MinFloatsNode
    • MinIntsNode
    • MultiplyFloatsNode
    • MultiplyIntsNode
    • MultiplyVector2ByFloatNode
    • MultiplyVector2IntByIntNode
    • MultiplyVector2IntsNode
    • MultiplyVector2sNode
    • MultiplyVector3ByFloatNode
    • MultiplyVector3IntByIntNode
    • MultiplyVector3IntsNode
    • MultiplyVector3sNode
    • NamedColor
    • NamedColorNode
    • NamedColorSet
    • ObjectType<TEntry, TObject>
    • ObjectTypeEntry<T>
    • ObjectTypeSet<TType, TEntry, TObject>
    • ObjectTypeSetScriptableObject<TType, TEntry, TObject>
    • OpenObjectTypeSet<TType, TEntry, TObject>
    • Outliner
    • PerlinNoiseFillTextureNode
    • PointsToAreasNode
    • PoolInitializer
    • PowerNode
    • PrefabSet
    • PrefabType
    • PrefabTypeEntry
    • RandomBoolNode
    • RandomBspRoomsNode
    • RandomBspTreeNode
    • RandomColorNode
    • RandomExtensions
    • RandomFloatNode
    • RandomIntNode
    • RandomlyFillTextureNode
    • RandomlyStampTilemapsNode
    • RandomNode<T>
    • RandomPointsNode
    • RandomRectsNode
    • RandomRngStateNode
    • RandomVector2IntNode
    • RandomVector2Node
    • RandomVector3IntNode
    • RandomVector3Node
    • RandomWalkerNode
    • RangeRandomNode<T>
    • RectCenterPointsNode
    • RectsToAreasNode
    • ReplaceColorNode
    • ReplaceGameObjectChildrenNode
    • ResizeTextureNode
    • RotateTextureNode
    • RotationalSymmetry
    • SaveData
    • SaveTextureData
    • ScaleTextureNode
    • ScaleTextureToNode
    • ScaleTextureVector2Node
    • ShiftTextureNode
    • SplitConnectionsManhattanNode
    • SquareRootNode
    • StackPool<T>
    • StampNode
    • SubtractFloatFromVector2Node
    • SubtractFloatFromVector3Node
    • SubtractFloatsNode
    • SubtractIntFromVector2IntNode
    • SubtractIntFromVector3IntNode
    • SubtractIntsNode
    • SubtractMaskNode
    • SubtractVector2IntsNode
    • SubtractVector2sNode
    • SubtractVector3IntsNode
    • SubtractVector3sNode
    • TextureData
    • TextureData.Color32ArrayFacade
    • TextureDataDrawingExtensions
    • TextureDataExtensions
    • TextureDataPool
    • TextureSizeNode
    • TextureToChildGameObjectsNode
    • TextureToDataNode
    • TextureToGameObjectsNode
    • TextureToMaskNode
    • TextureToTilemapNode
    • TilemapData
    • TilemapDataPool
    • TilemapSet
    • TilemapToDataNode
    • TilemapToTextureNode
    • TilemapType
    • TilemapTypeEntry
    • Tileset
    • TileType
    • TileTypeEntry
    • TransparentColorNode
    • Vector2IntComparer
    • Vector2IntFromFloats
    • Vector2IntFromInts
    • Vector2IntToInts
    • Vector2IntToVector2
    • Vector3IntComparer
    • WaveformFunctionCollapseNode
  • InsaneScatterbrain.MapGraph.Editor
    • AboutWindow
    • AddRandomEdgesNodeView
    • ApplyMaskNodeView
    • AreaSpecialPointsNodeView
    • CellularAutomataSmoothingNodeView
    • ChangeTextureSizeNodeView
    • CornerPointsNodeView
    • DataSetList<T>
    • DataSetListBase<T>
    • DrawAreasNodeView
    • DrawBorderNodeView
    • DrawCirclesNodeView
    • DrawConnectionsBiasedRandomWalkNodeView
    • DrawGridNodeView
    • DrawManhattanConnectionsNodeView
    • DrawNoiseThresholdNodeView
    • DrawOutlineNodeView
    • DrawPointsNodeView
    • DrawRectsNodeView
    • DrawShortestPathConnectionsNodeView
    • EmptyTextureNodeView
    • ExtractAreasNodeView
    • ExtractColorNodeView
    • ExtractPointsNodeView
    • ExtractPointsWithNeighboursNodeView
    • FlipTextureNodeView
    • GenerateAreaGraphNodeView
    • GenerateMstAreaGraphNodeView
    • GenerateRstAreaGraphNodeView
    • Initializer
    • InputParametersList
    • InvertMaskNodeView
    • ListBase
    • MapGraphAsset
    • MapGraphAssetUpdater
    • MapGraphCreateMenu
    • MapGraphEditor
    • MapGraphEditorInfo
    • MapGraphEditorSettingsWindow
    • MapGraphEditorSettingsWindowInitializer
    • MapGraphInitializer
    • MapGraphUpdater
    • MergeAreasNodeView
    • NamedColorNodeView
    • NamedColorSetEditor
    • NamedColorSetList
    • NewUpdatesWindow
    • ObjectTypeEntryList<TType, TEntry, TObject>
    • ObjectTypeSetList<TType, TEntry, TObject>
    • OutputParametersList
    • ParametersList
    • PerlinNoiseFillTextureNodeView
    • PrefabSetEditor
    • PrefabTypeEntryList
    • PrefabTypeList
    • ProcessGraphNodeView
    • RandomBspRoomsNodeView
    • RandomBspTreeNodeView
    • RandomlyFillTextureNodeView
    • RandomlyStampTilemapsNodeView
    • RandomPointsNodeView
    • RandomRectsNodeView
    • RandomWalkerNodeView
    • ReplaceColorNodeView
    • ResizeTextureNodeView
    • RotateTextureNodeView
    • RotationalSymmetryNodeView
    • ScaleTextureNodeView
    • ScaleTextureToNodeView
    • ScaleTextureVector2NodeView
    • ScriptGraphAssetUpdater
    • ScriptNodeViewExtensions
    • ShiftTextureNodeView
    • StampNodeView
    • TextureConstantNodeView
    • TextureToMaskNodeView
    • TilemapConstantNodeView
    • TilemapPrefabEditor
    • TilemapSetConstantNodeView
    • TilemapSetEditor
    • TilemapToTextureNodeView
    • TilemapTypeEntryList
    • TilemapTypeList
    • TilesetConstantNodeView
    • TilesetEditor
    • TileTypeEntryList
    • TileTypeList
    • TransparentColorNodeView
    • UpdateAction_1_10
    • UpdateAction_1_14
    • UpdateAction_1_15
    • UpdateAction_1_2
    • UpdateChecker
    • WaveformFunctionCollapseNodeView
  • InsaneScatterbrain.Pooling
    • IPool
    • Pool<T>
    • PoolManager
  • InsaneScatterbrain.RandomNumberGeneration
    • Rng
    • RngState
  • InsaneScatterbrain.ScriptGraph
    • BoolParameterField
    • BoundsIntParameterField
    • BoundsParameterField
    • Color32ParameterField
    • ConstantNode
    • ConsumerNode
    • CopyData
    • CopyPaste
    • DataSet<T>
    • DataSetItem
    • DataSetScriptableObject<TItem, TOpenSet>
    • DataSetScriptableObject<TItem>
    • ExecutionGraph
    • ExecutionGraphBuilder
    • ExplicitInPortTypesAttribute
    • ExplicitOutPortTypesAttribute
    • ExplicitPortTypesAttribute
    • FloatParameterField
    • IConsumerNode
    • IDataSet
    • IDataSet<T>
    • IDataSetItem
    • IInstanceProvider
    • IncompatiblePortTypeException
    • INode
    • InPort
    • InPortAttribute
    • InputNode
    • IntParameterField
    • IOpenDataSet<T>
    • IParameterField
    • IPool
    • IPoolInitializer
    • IPreparable
    • IProcessorNode
    • IProviderNode
    • IScriptGraphInstanceProvider
    • IScriptNode
    • NewInstanceProvider
    • NewScriptGraphInstanceProvider
    • NodeEdge
    • ObjectParameterField
    • OpenDataSet<T>
    • OutPort
    • OutPortAttribute
    • OutputNode
    • PairVector2IntParameterField
    • Pool<T>
    • PoolManager
    • PoolManagerInitializer
    • PoolManagerSingleton
    • Pools
    • PortAttribute
    • PortNotFoundException
    • ProcessGraphNode
    • ProcessorNode
    • ProviderNode
    • RectIntParameterField
    • RectParameterField
    • RequiredPortNotConnectedException
    • RngExtensions
    • ScriptGraphComponents
    • ScriptGraphEditorInfo
    • ScriptGraphGraph
    • ScriptGraphInput
    • ScriptGraphInput<T>
    • ScriptGraphInputBool
    • ScriptGraphInputBounds
    • ScriptGraphInputBoundsInt
    • ScriptGraphInputColor32
    • ScriptGraphInputFloat
    • ScriptGraphInputFloatAsInt
    • ScriptGraphInputInt
    • ScriptGraphInputObject
    • ScriptGraphInputRect
    • ScriptGraphInputRectInt
    • ScriptGraphInputString
    • ScriptGraphInputTexture2D
    • ScriptGraphInputTilemap
    • ScriptGraphInputTilemapSet
    • ScriptGraphInputTileset
    • ScriptGraphInputVector2
    • ScriptGraphInputVector2Int
    • ScriptGraphInputVector3
    • ScriptGraphInputVector3Int
    • ScriptGraphMonoBehaviour
    • ScriptGraphParameter
    • ScriptGraphParameters
    • ScriptGraphPool
    • ScriptGraphPoolManager
    • ScriptGraphPoolManagerSingleton
    • ScriptGraphPort
    • ScriptGraphProcessor
    • ScriptGraphRunner
    • ScriptNode
    • ScriptNodeAttribute
    • SeedType
    • StringParameterField
    • Vector2IntParameterField
    • Vector2ParameterField
    • Vector3IntParameterField
    • Vector3ParameterField
  • InsaneScatterbrain.ScriptGraph.Editor
    • BoolConstantNodeView
    • BoundsConstantNodeView
    • BoundsIntConstantNodeView
    • ColorConstantNodeView
    • ConstantNodeView
    • ConstantNodeViewAttribute
    • FloatConstantNodeView
    • GroupNodeView
    • InputNodeView
    • IntConstantNodeView
    • NodeDuplicator
    • NodeFactory
    • ObjectConstantNodeView
    • OutPortEdgeConnectListener
    • OutputNodeView
    • RandomBspRoomsPreviewBehaviour
    • RectConstantNodeView
    • RectIntConstantNodeView
    • ScriptGraphContextMenu
    • ScriptGraphDebugger
    • ScriptGraphDependencyInstaller
    • ScriptGraphEditor
    • ScriptGraphInitializer
    • ScriptGraphInputEditor
    • ScriptGraphRunnerEditor
    • ScriptGraphValidator
    • ScriptGraphView
    • ScriptGraphViewSelection
    • ScriptGraphViewWindow
    • ScriptNodeView
    • ScriptNodeViewAttribute
    • ScriptNodeViewFactory
    • ScriptNodeViewTypesRegistry
    • StringConstantNodeView
    • Urls
    • Vector2ConstantNodeView
    • Vector2IntConstantNodeView
    • Vector3ConstantNodeView
    • Vector3IntConstantNodeView
  • InsaneScatterbrain.ScriptGraph.Editor.NodeSearch
    • ConstantEntryRegistry
    • DefaultEntryRegistry
    • EntryData
    • EntryFactory
    • GraphEntryRegistry
    • IEntryRegistry
    • InputParametersEntryRegistry
    • ISearchFilter
    • NodeSearchWindow
    • NodeType
    • OutputParametersEntryRegistry
    • ParametersEntryRegistry
    • PortFilter
  • InsaneScatterbrain.Serialization
    • ArraySerializer<T>
    • BoundsIntSerializer
    • BoundsSerializer
    • DataBag
    • DefaultArraySerializer
    • IDeserializer
    • ISerializer
    • RectIntSerializer
    • RectSerializer
    • Serializer
    • Vector2IntSerializer
    • Vector3IntSerializer
  • InsaneScatterbrain.Services
    • Disposer
    • Rng
    • Texture2DFactory
    • Types
  • InsaneScatterbrain.Threading
    • IMainThreadCommand
    • IMainThreadCommandHandler
    • IMainThreadCoroutineCommand
    • IMainThreadCoroutineCommandHandler
    • MainThread
    • MainThreadCommand
    • MainThreadCommandHandler
    • MainThreadCoroutine
    • MainThreadCoroutineCommand
    • MainThreadCoroutineCommandHandler
    • MainThreadUpdater
  • InsaneScatterbrain.Versioning
    • IVersioned
    • SerializedVersion
    • VersionedMonoBehaviour
    • VersionedScriptableObject

Class MainThread

Allows calls onto the main thread from any other thread. This can be necessary, because the Unity API is only accessible from the main thread for the most part.

Inheritance
System.Object
MainThread
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: InsaneScatterbrain.Threading
Syntax
public static class MainThread

Properties

CommandHandler

The command handler that's used to handle any commands given.

Declaration
public static IMainThreadCommandHandler CommandHandler { get; set; }
Property Value
Type Description
IMainThreadCommandHandler

CoroutineCommandHandler

Declaration
public static IMainThreadCoroutineCommandHandler CoroutineCommandHandler { get; set; }
Property Value
Type Description
IMainThreadCoroutineCommandHandler

IsCurrent

Declaration
public static bool IsCurrent { get; }
Property Value
Type Description
System.Boolean

Methods

Execute(IMainThreadCommand, Boolean)

Executes the given action on the main thread.

Declaration
public static void Execute(IMainThreadCommand command, bool waitForCompletion = true)
Parameters
Type Name Description
IMainThreadCommand command

The command to execute on the main thread.

System.Boolean waitForCompletion

Whether or not the calling thread should wait for completion of this command before continuing code execution.

Execute(IMainThreadCoroutineCommand, Boolean)

Declaration
public static void Execute(IMainThreadCoroutineCommand command, bool waitForCompletion = true)
Parameters
Type Name Description
IMainThreadCoroutineCommand command
System.Boolean waitForCompletion

Execute(Action, Boolean)

Executes the given action on the main thread.

Declaration
[Obsolete("This overload will likely be removed in 2.0.")]
public static void Execute(Action action, bool waitForCompletion = true)
Parameters
Type Name Description
System.Action action

The action to execute on the main thread.

System.Boolean waitForCompletion

Whether or not the calling thread should wait for completion of this command before continuing code execution.

Initialize()

This is called on load (either in the editor or in a build) from the main thread, so that a reference to the main thread is stored to execute commands on.

Declaration
[RuntimeInitializeOnLoadMethod]
public static void Initialize()

Update()

Handles the execution for queued commands.

Declaration
public static void Update()

UpdateCoroutine()

Handles the execution for queued coroutine commands.

Declaration
public static IEnumerator UpdateCoroutine()
Returns
Type Description
System.Collections.IEnumerator
In This Article
Back to top Generated by DocFX