# IGH_TaskCapableComponent interface

Namespace: [Grasshopper.Kernel](https://developer.rhino3d.com/api/gh1/namespace/grasshopper.kernel.md) · Assembly: [Grasshopper](https://developer.rhino3d.com/api/gh1/assembly/grasshopper.md)

```cs
public interface IGH_TaskCapableComponent : IGH_Component
```

GH_Component that can choose to support the use of Tasks to compute solutions When UseTasks returns true, the component has it's SolveInstance enumeration called twice. The first pass (InPreSolve=True) is intended solely for collecting data and starting calculation tasks. The second pass (InPreSolve=False) takes results or the tasks and sets the output.

**Derived types:** [GH_TaskCapableComponent<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-taskcapablecomponent-1.md)

## Properties

- [InPreSolve](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-taskcapablecomponent/inpresolve.md): Is set to True by the framework right before a "use tasks" pass is made on SolveIntance calls. When True, SolveInstance should be using Tasks to start calculations on input data. When False, SolveInstance should be setting the output data by either using the result of a task or directly computing the results.
- [UseTasks](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-taskcapablecomponent/usetasks.md): Returns True if the component is set to support tasks. Components can have this feature turned on/off. Note that even if UseTasks returns True, there is a chance that a multipass task based solution may not be invoked depending on if multiple calls need to be made during enumeration. You must pay attention to the value of InPreSolve during SolveInstance. The set version of this property can be called by the framework if we want to provide a technique to globally turn on/off task support for all components in a definition.

## Methods

- [RequestTaskCancellation](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-taskcapablecomponent/requesttaskcancellation.md): Called by the framework when solving has been interrupted and tasks do not need to complete.

## Inherited Members

- From [IGH_Component](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component.md): [DataComparison](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/datacomparison.md), [InConstructor](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/inconstructor.md), [IsValidMasterParameterIndex](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/isvalidmasterparameterindex.md), [MasterParameterIndex](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/masterparameterindex.md), [Message](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/message.md), [Params](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/params.md), [RunCount](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-component/runcount.md)
- From [IGH_ActiveObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject.md): [IsDataProvider](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/isdataprovider.md), [Locked](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/locked.md), [MutableNickName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/mutablenickname.md), [Phase](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/phase.md), [ProcessorTime](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/processortime.md), [RuntimeMessageLevel](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/runtimemessagelevel.md), [AddRuntimeMessage](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/addruntimemessage.md), [ClearData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/cleardata.md), [ClearRuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/clearruntimemessages.md), [CollectData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/collectdata.md), [ComputeData](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/computedata.md), [DependsOn](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/dependson.md), [RegisterRemoteIDs](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/registerremoteids.md), [RuntimeMessages](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/runtimemessages.md), [SDKCompliancy](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-activeobject/sdkcompliancy.md)
- From [IGH_DocumentObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject.md): [Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/attributes.md), [ComponentGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/componentguid.md), [Exposure](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/exposure.md), [IconDisplayMode](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/icondisplaymode.md), [Icon_24x24](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/icon-24x24.md), [Icon_24x24_Locked](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/icon-24x24-locked.md), [Obsolete](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/obsolete.md), [AttributesChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/attributeschanged.md), [DisplayExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/displayexpired.md), [ObjectChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/objectchanged.md), [PingDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/pingdocument.md), [PreviewExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/previewexpired.md), [SolutionExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/solutionexpired.md), [AddedToDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/addedtodocument.md), [AppendMenuItems](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/appendmenuitems.md), [CreateAttributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/createattributes.md), [DocumentContextChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/documentcontextchanged.md), [ExpirePreview](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/expirepreview.md), [ExpireSolution](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/expiresolution.md), [IsolateObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/isolateobject.md), [MovedBetweenDocuments](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/movedbetweendocuments.md), [OnAttributesChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onattributeschanged.md), [OnDisplayExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/ondisplayexpired.md), [OnObjectChanged](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onobjectchanged.md), [OnPingDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onpingdocument.md), [OnPreviewExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onpreviewexpired.md), [OnSolutionExpired](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/onsolutionexpired.md), [RecordUndoEvent](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/recordundoevent.md), [RemovedFromDocument](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/removedfromdocument.md), [TriggerAutoSave](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-documentobject/triggerautosave.md)
- From [IGH_InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription.md): [Category](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/category.md), [Description](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/description.md), [HasCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/hascategory.md), [HasSubCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/hassubcategory.md), [InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/instancedescription.md), [InstanceGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/instanceguid.md), [Keywords](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/keywords.md), [Name](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/name.md), [NickName](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/nickname.md), [SubCategory](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/subcategory.md), [NewInstanceGuid](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription/newinstanceguid.md)
- From [GH_ISerializable](https://developer.rhino3d.com/api/gh1/type/gh-io.gh-iserializable.md): [Read](https://developer.rhino3d.com/api/gh1/type/gh-io.gh-iserializable/read.md), [Write](https://developer.rhino3d.com/api/gh1/type/gh-io.gh-iserializable/write.md)
- From [IGH_PreviewObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject.md): [ClippingBox](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/clippingbox.md), [Hidden](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/hidden.md), [IsPreviewCapable](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/ispreviewcapable.md), [DrawViewportMeshes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/drawviewportmeshes.md), [DrawViewportWires](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-previewobject/drawviewportwires.md)
- From [IGH_BakeAwareObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-bakeawareobject.md): [IsBakeCapable](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-bakeawareobject/isbakecapable.md), [BakeGeometry](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-bakeawareobject/bakegeometry.md)
