/// <summary> /// 添加数据到 /// </summary> private void enqueue() { client.RemoveDataStructure(cacheName); queue = client.GetOrCreateDataStructure <QueueConsumer <Binary <Message> > >(cacheName); start(CallbackType.Asynchronous, TestType.MessageQueueEnqueue); for (int index = 0; index != count; ++index) { queue.EnqueueStream(new Message { Value = index }, enqueueCallbackReturnParameter); } wait(); messageIndex = 0; }
/// <summary> /// 消费者 线程池轮询缓冲区(生产消费实时并行测试) /// </summary> private void threadPoolMixing() { client.RemoveDataStructure(cacheName); queue = client.GetOrCreateDataStructure <QueueConsumer <Binary <Message> > >(cacheName); messageIndex = errorCount = 0; start(CallbackType.ThreadPool, TestType.MessageQueueMixing, 2); using (AutoCSer.CacheServer.MessageQueue.Abstract.Consumer consumer = queue.CreateConsumer(onMessageInterlocked, getConfig())) { for (int index = 0; index != count; ++index) { queue.EnqueueStream(new Message { Value = index }, enqueueCallbackInterlockedReturnParameter); } wait(); } client.RemoveDataStructure(cacheName); }