public async Task SubscribeAsync <T>(string topic, IActor <T> actor) { using (await _lock.LockAsync()) { if (_pool.ContainsKey(topic) == true) { throw new Exception("Topic already registered with existing actor."); } var queue = await _bus.Settings.GetReadQueueAsync(topic); var rmqSubscription = new RmqSubscription <T>(topic, _bus, actor, queue); _pool[topic] = new Tuple <ReadQueue, ISubscription>(queue, rmqSubscription); } }