示例#1
0
 static void Main(string[] args)
 {
     Console.WriteLine("Listerner Starting");
     QueueListener listner = new QueueListener();
     listner.DataReceived += listner_DataReceived;
     listner.Start();
 }
示例#2
0
        //static QListener _queue=new QListener();

        static void Main(string[] args)
        {
            Console.WriteLine("QueueTasksDemo started...");

            var watch = Stopwatch.StartNew();

            QueueListener <LogItem> _queue = new QueueListener <LogItem>(MessageReceivedAction <LogItem>);

            //_queue.MessageReceived += new MControl.Generic.GenericEventHandler<LogItem>(_queue_MessageReceived);
            _queue.Start();

            int counter = 0;
            int items   = 0;

            while (_queue.IsAlive)
            {
                if (++counter > 200)
                {
                    break;
                }
                // Add some log messages in parallel...

                Task.Factory.StartNew(() => _queue.Enqueue(new LogItem("Log from task A")));
                Task.Factory.StartNew(() => _queue.Enqueue(new LogItem("Log from task B")));
                Task.Factory.StartNew(() => _queue.Enqueue(new LogItem("Log from task B1")));
                Task.Factory.StartNew(() => _queue.Enqueue(new LogItem("Log from task C")));
                Task.Factory.StartNew(() => _queue.Enqueue(new LogItem("Log from task D")));
                items += 5;
                // Pretend to do other things...
                Thread.Sleep(100);
            }

            while (_queue.Count > 0)
            {
                Thread.Sleep(100);
            }

            //_queue.Start();

            //QTest.Invoke(_queue,200);

            watch.Stop();

            Console.WriteLine("Duration: {0}", watch.ElapsedMilliseconds);

            Console.WriteLine("Items per second : {0}", (float)items / (watch.ElapsedMilliseconds / 1000));

            Console.WriteLine("QueueTasksDemo waiting...");

            Console.ReadKey();

            _queue.Stop();

            Console.WriteLine("QueueTasksDemo finished...");

            Console.ReadKey();
        }
示例#3
0
        public static void DoListnning(QueueHost host)
        {
            var adapter = new QueueAdapter()
            {
                Source  = host,
                IsAsync = true,
                //Interval = 100,
                ConnectTimeout    = 5000,
                ReadTimeout       = 180000,
                WorkerCount       = 1,
                EnableDynamicWait = true,
                QueueAction       = (message) =>
                {
                    Console.WriteLine("State:{0},Arrived:{1},Host:{2},Label:{3}, Identifier:{4}, Duration:{5}", message.MessageState, message.ArrivedTime.ToString("yyyy-MM-dd HH:mm:ss.fff"), message.Host, message.Label, message.Identifier, message.Duration);

                    var    body  = message.GetBody();
                    string sbody = body == null ? "null" : body.ToString();
                    Console.WriteLine("body: " + sbody);
                },
                FaultAction = (message) =>
                {
                    Console.WriteLine(message);
                }
            };

            QueueListener listener = new QueueListener(adapter, 100);
            string        logpath  = NetlogSettings.GetDefaultPath("qlistener");

            listener.Logger = new Logger(logpath);
            //listener.ErrorOcurred += Listener_ErrorOcurred;
            //listener.MessageReceived += Listener_MessageReceived;
            listener.Start();

            //QueueApi api = new QueueApi(host);
            //api.ReceiveCompleted += api_ReceiveCompleted;

            ////api.Listener(10000, message_ReceiveCompleted);
            //bool KeepAlive = true;
            //int connectTimeout=10000;

            //    while (KeepAlive)
            //    {
            //        api.Receive(connectTimeout,message_ReceiveCompleted);
            //        Thread.Sleep(100);
            //    }



            //Console.WriteLine("QueueListener finished...");
            //Console.ReadLine();
        }