view MonoPlay/Program.cs @ 208:7d07503621fe v2

RunnableComponent.Dispose(bool,Exception) changed to standart Dispose(bool) IRunnable is now disposable Code cleanups, suppressed some CodeAnalysis warnings
author cin
date Sun, 13 Nov 2016 18:28:17 +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();



        }

    }
}