예제 #1
0
        public Ring6PageVm()
        {
            Randy = new ThreadSafeRandom();

            DisplayFrequencySliderVm = new SliderVm(new I <float>(1.0f, 50.0f), 1, "0", "DisplayFrequency")
            {
                Title = "Display Frequency", Value = 20
            };

            StepSizeVm = new SliderVm(new I <float>(0.0f, 0.3f), 0.02, "0.00", "StepSize")
            {
                Title = "Step Size", Value = 0.1f
            };

            DisplayFrequencySliderVm = new SliderVm(new I <float>(1.0f, 100.0f), 1, "0", "DisplayFrequency")
            {
                Title = "Display Frequency", Value = 50
            };

            NoiseLevelVm = new SliderVm(new I <float>(0.0f, 0.3f), 0.002, "0.000", "NoiseLevel")
            {
                Title = "Noise", Value = 0.02f
            };

            Grid2DVm = new Grid2DVm <float>(Bounds, ColorSets.RedBlueSFLeg, "Ring 1");

            NodeArray = NodeProcs.RandNodeArray(Bounds, Randy);

            UpdateUi();
        }
예제 #2
0
        async void RunBatch()
        {
            int Stride      = 32;
            var jobs        = 4;
            var GridStrides = new Sz2 <int>(Stride, Stride);
            var nodeGrid    = NodeProcs.RandNodeGrid(GridStrides, 123, 456);
            var localOrders = ColUtils.SubSeqs(jobs, GridStrides.Count() / jobs)
                              .Select(t => t.ToList())
                              .ToList();
            var trackedTasks = new List <Task <int> >();

            for (var i = 0; i < jobs; i++)
            {
                var i1 = i;
                trackedTasks.Add(Task.Run(() =>
                {
                    Thread.Sleep(2000);
                    return(i1);
                }));
            }
            await Task.WhenAll(trackedTasks);

            var tot = trackedTasks.Sum(tt => tt.Result);
        }