view MonoPlay/Program.cs @ 221:8808383fcb94 v2

fixed recursion in Safe.Dispose with IEnumerable
author cin
date Fri, 23 Jun 2017 01:03:42 +0300
parents d7cd7a83189a
children
line wrap: on
line source

using Implab;
using Implab.Parallels;
using Implab.Diagnostics;
using System.Threading;

namespace MonoPlay {
    class MainClass {


        public static void Main(string[] args) {
            var pool = new WorkerPool(10);

            var listerner = new ConsoleTraceListener();
            listerner.Subscribe<TraceEvent>();

            TraceLog.StartLogicalOperation("Main");


            var d = pool.Invoke(() => {
                TraceLog.StartLogicalOperation("Worker");
                Thread.Sleep(100);
                TraceLog.TraceInformation("worker done");
                TraceLog.EndLogicalOperation();
            });

            var op = TraceContext.Instance.CurrentOperation;
            ThreadPool.QueueUserWorkItem((o) => {
                TraceContext.Instance.EnterLogicalOperation(op, false);
                TraceLog.StartLogicalOperation("Thread");
                Thread.Sleep(100);
                TraceLog.TraceInformation("thread done");
                TraceLog.EndLogicalOperation();
            });

            TraceLog.TraceInformation("main done");
            TraceLog.EndLogicalOperation();

            d.Join();



        }

    }
}