> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/reactor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksupdateevent-1.md).

# Class ksUpdateEvent\<T>

Namespace: [KS.Reactor.Server](/reactor/api-reference/ks.reactor.server.md)\
Assembly: KSReactor.dll

Stores a list of update event handlers, and configuration about how to invoke them.

```csharp
public class ksUpdateEvent<T> : ksEvent<ksUpdateEvent<T>, T>, ksIEvent where T : class
```

#### Type Parameters

`T`

Delegate type

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† ksEvent\<ksUpdateEvent\<T>, T> â† [ksUpdateEvent\<T>](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksupdateevent-1.md)

#### Implements

ksIEvent

#### Inherited Members

ksEvent\<ksUpdateEvent\<T>, T>.m\_handlers, ksEvent\<ksUpdateEvent\<T>, T>.Count, ksEvent\<ksUpdateEvent\<T>, T>.Execute, ksEvent\<ksUpdateEvent\<T>, T>.Add(T), ksEvent\<ksUpdateEvent\<T>, T>.Remove(T), ksEvent\<ksUpdateEvent\<T>, T>.ForEach(ksEvent\<ksUpdateEvent\<T>, T>.ForEachCallback), ksEvent\<ksUpdateEvent\<T>, T>.ForEach(ksEvent\<ksUpdateEvent\<T>, T>.ForEachCancellableCallback), [object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Fields

### Parallel <a href="#ks_reactor_server_ksupdateevent_1_parallel" id="ks_reactor_server_ksupdateevent_1_parallel"></a>

Should the updates be invoked in parallel? The next update group will not begin processing until all parallel updates in the current group are finished, so long blocking calls should not be made from parallel updates. Adding or removing update handlers from an update group while its updates are being processed in parallel is not allowed and will throw an exception.

```csharp
public bool Parallel
```

#### Field Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### SyncFrameOnly <a href="#ks_reactor_server_ksupdateevent_1_syncframeonly" id="ks_reactor_server_ksupdateevent_1_syncframeonly"></a>

Should the updates only be invoked on sync frames?

```csharp
public bool SyncFrameOnly
```

#### Field Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

## Properties

### Locked <a href="#ks_reactor_server_ksupdateevent_1_locked" id="ks_reactor_server_ksupdateevent_1_locked"></a>

While true, event handlers cannot be added or removed. This is true while events are invoked in parallel.

```csharp
public bool Locked { get; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

## Methods

### Add(T) <a href="#ks_reactor_server_ksupdateevent_1_add__0" id="ks_reactor_server_ksupdateevent_1_add__0"></a>

Adds an item to the event list.

```csharp
public override void Add(T item)
```

#### Parameters

`item` T

Item to add

### ForEach(ForEachCallback) <a href="#ks_reactor_server_ksupdateevent_1_foreach_ks_reactor_ksevent_ks_reactor_server_ksupdateevent__0___0" id="ks_reactor_server_ksupdateevent_1_foreach_ks_reactor_ksevent_ks_reactor_server_ksupdateevent__0___0"></a>

Iterate and invoke the callback on all items. If [Parallel](/reactor/api-reference/ks.reactor.server.md#KS_Reactor_Server_ksUpdateEvent_601_Parallel) is true, callbacks will be invoked in parallel.

```csharp
public override void ForEach(ksEvent<ksUpdateEvent<T>, T>.ForEachCallback callback)
```

#### Parameters

`callback` ksEvent<[ksUpdateEvent](/reactor/api-reference/ks.reactor.server/ks.reactor.server.ksupdateevent-1.md)\<T>, T>.ForEachCallback

### Remove(T) <a href="#ks_reactor_server_ksupdateevent_1_remove__0" id="ks_reactor_server_ksupdateevent_1_remove__0"></a>

Remove an item from the event list.

```csharp
public override void Remove(T item)
```

#### Parameters

`item` T

Item to be removed
