Пример #1
0
        protected override void OnCreate()
        {
            base.OnCreate();

            tlog.Debug(tag, "OnCreate() START!");

            mainPid = Process.GetCurrentProcess().Id;
            mainTid = Thread.CurrentThread.ManagedThreadId;

            window = NUIApplication.GetDefaultWindow();
            window.BackgroundColor = Color.Green;

            root = new View()
            {
                Size                   = new Size(100, 100),
                BackgroundColor        = Color.White,
                PositionUsesPivotPoint = true,
                ParentOrigin           = ParentOrigin.Center,
                PivotPoint             = PivotPoint.Center,
            };

            layer = window.GetDefaultLayer();
            layer.Add(root);

            mainTitle = new TextLabel()
            {
                MultiLine              = true,
                Text                   = title + $"Process ID: {Process.GetCurrentProcess().Id} \nThread ID: {Thread.CurrentThread.ManagedThreadId}\n",
                PixelSize              = textSize,
                BackgroundColor        = Color.Cyan,
                Size                   = new Size(window.WindowSize.Width * 0.9f, window.WindowSize.Height * 0.9f, 0),
                PositionUsesPivotPoint = true,
                ParentOrigin           = ParentOrigin.Center,
                PivotPoint             = PivotPoint.Center,
            };
            root.Add(mainTitle);

            Thread.CurrentThread.Name = "main";
            trunner = new NUnitLite.TUnit.TRunner();
            trunner.LoadTestsuite();

            asyncThreadMgr            = TAsyncThreadMgr.GetInstance();
            methodExecutionResetEvent = asyncThreadMgr.GetMethodExecutionResetEvent();
            methodExecutionResetEvent.Reset();

            Task t = Task.Run(() =>
            {
                Thread.CurrentThread.Name = "textRunner";
                trunner._textRunner.Execute(trunner.args);
                asyncThreadMgr.SetData(null, null, null, null, false);
                methodExecutionResetEvent.Set();
            });

            eventThreadCallback = new EventThreadCallback(new EventThreadCallback.CallbackDelegate(ProcessTest));
            eventThreadCallback.Trigger();
        }
Пример #2
0
        private void ProcessTest()
        {
            methodExecutionResetEvent.WaitOne();

            if (asyncThreadMgr.RunTestMethod() == false)
            {
                mainTitle.Text = title + "Finished!\nWill be terminated after 5 seconds";
                timer          = new Timer(300);
                timer.Tick    += OnTick;
                timer.Start();
                return;
            }
            eventThreadCallback.Trigger();
        }