static void Main(string[] args) { var pool = new FlyweightObjectPool<byte[]>(() => new byte[65535]); pool.Allocate(1000); var buffer = pool.Dequeue(); // .. do something here .. pool.Enqueue(buffer); }
static void Main(string[] args) { var pool = new FlyweightObjectPool <byte[]>(() => new byte[65535]); pool.Allocate(1000); var buffer = pool.Dequeue(); // .. do something here .. pool.Enqueue(buffer); }
/// <summary> /// Parse a header. /// </summary> /// <param name="name">Name of header</param> /// <param name="value">Header value</param> /// <returns>Header.</returns> /// <exception cref="FormatException">Value is not a well formatted header value.</exception> public IHeader Parse(string name, string value) { IHeaderParser parser; if (!_parsers.TryGetValue(name, out parser)) { parser = _stringParser; } StringReader reader = _readers.Dequeue(); reader.Assign(value); try { return(parser.Parse(name, reader)); } finally { _readers.Enqueue(reader); } }
/// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> /// <filterpriority>2</filterpriority> public void Dispose() { Buffers.Enqueue(_buffer); Close(); }
/// <summary> /// Release a used factory context. /// </summary> /// <param name="factoryContext"></param> internal void Release(MessageFactoryContext factoryContext) { _builders.Enqueue(factoryContext); }