# QueueBalancerBase Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.queuebalancerbase/)

## GetMyQueues {#getmyqueues-6a2a9a7a}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.queuebalancerbase/methods/getmyqueues-6a2a9a7a/)

```csharp
public abstract IEnumerable<QueueId> GetMyQueues()
```

Retrieves the latest queue distribution for this balancer.

### Returns

Queue allocated to this balancer.

## Initialize(IStreamQueueMapper) {#initialize-orleans-streams-istreamqueuemapper-b277b358}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.queuebalancerbase/methods/initialize-orleans-streams-istreamqueuemapper-b277b358/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/QueueBalancer/QueueBalancerBase.cs#L54-L57)

```csharp
public virtual Task Initialize(IStreamQueueMapper queueMapper)
```

Initializes this instance.

### Parameters

- `queueMapper` (`IStreamQueueMapper`): The queue mapper.

### Returns

A `System.Threading.Tasks.Task` representing the operation.

## Shutdown {#shutdown-9ec2bb2f}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.queuebalancerbase/methods/shutdown-9ec2bb2f/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/QueueBalancer/QueueBalancerBase.cs#L63-L71)

```csharp
public virtual Task Shutdown()
```

Shutdown the queue balancer.

### Returns

A `System.Threading.Tasks.Task` representing the operation.

## SubscribeToQueueDistributionChangeEvents(IStreamQueueBalanceListener) {#subscribetoqueuedistributionchangeevents-orleans-streams-istreamqueuebalancelist-33d68e22}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.queuebalancerbase/methods/subscribetoqueuedistributionchangeevents-orleans-streams-istreamqueuebalancelist-33d68e22/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/QueueBalancer/QueueBalancerBase.cs#L76-L86)

```csharp
public bool SubscribeToQueueDistributionChangeEvents(IStreamQueueBalanceListener observer)
```

Subscribes to receive queue distribution change notifications

### Parameters

- `observer` (`IStreamQueueBalanceListener`): An observer interface to receive queue distribution change notifications.

### Returns

A value indicating whether subscription succeeded or not.

## UnSubscribeFromQueueDistributionChangeEvents(IStreamQueueBalanceListener) {#unsubscribefromqueuedistributionchangeevents-orleans-streams-istreamqueuebalance-24f7af8a}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.queuebalancerbase/methods/unsubscribefromqueuedistributionchangeevents-orleans-streams-istreamqueuebalance-24f7af8a/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/QueueBalancer/QueueBalancerBase.cs#L90-L95)

```csharp
public bool UnSubscribeFromQueueDistributionChangeEvents(IStreamQueueBalanceListener observer)
```

Unsubscribes from receiving queue distribution notifications.

### Parameters

- `observer` (`IStreamQueueBalanceListener`): An observer interface to receive queue distribution change notifications.

### Returns

A value indicating whether teh unsubscription succeeded or not
