public ConnectionIO(Connection connection) : base(channelNum: 0) { _cancellationTokenSource = new CancellationTokenSource(); _cancellationToken = _cancellationTokenSource.Token; _conn = connection; _socketHolder = new SocketHolder(_cancellationTokenSource.Token); _commandOutboxEvent = new AutoResetEvent(false); // _commandOutboxEvent = new AutoResetSuperSlimLock(false); _commandOutbox = new ConcurrentQueue<CommandToSend>(); _cmdToSendObjPool = new ObjectPool<CommandToSend>(() => new CommandToSend(i => _cmdToSendObjPool.PutObject(i)), 200, true); }
public async Task<Connection> Connect(string hostname, string vhost = "/", string username = "******", string password = "******", int port = 5672) { var conn = new Connection(); try { await conn.Connect(hostname, vhost, username, password, port); } catch (Exception) { conn.Dispose(); throw; } return conn; }