public void TryMany(bool p, int cnt, int block, int delay)
        {
            var lst = new List <GDID>();

            void body()
            {
                var gdids = m_Gen.TryGenerateManyConsecutiveGdids("scopeA", "seqA", block);

                if (!p)
                {
                    gdids.See($"Size is: {gdids.Length}");
                }
                lock (lst) lst.AddRange(gdids);
                if (!p)
                {
                    m_Gen.GetSequenceInfos("scopeA").See();
                }
                if (!p)
                {
                    Conout.WriteLine("--------------------------------------");
                }
                System.Threading.Thread.Sleep(delay);
                var gdid = m_Gen.GenerateOneGdid("scopeA", "seqA");

                lock (lst) lst.Add(gdid);
                if (!p)
                {
                    gdid.See();
                }
            }

            if (p)
            {
                Parallel.For(0, cnt, i => body());
            }
            else
            {
                for (var i = 0; i < cnt; i++)
                {
                    body();
                }
            }

            Conout.WriteLine("--------------------------------------");
            Conout.WriteLine("--------------------------------------");
            var gdid2 = m_Gen.GenerateOneGdid("scopeA", "seqA");

            lst.Add(gdid2);
            gdid2.See();
            m_Gen.GetSequenceInfos("scopeA").See();

            "Total: {0}".SeeArgs(lst.Count);
            Aver.AreEqual(lst.Count, lst.Distinct().Count());
        }
Exemple #2
0
        private void btnMany_Click(object sender, EventArgs e)
        {
            tbOutput.Text = "";

            var sw   = Stopwatch.StartNew();
            var many = m_Generator.TryGenerateManyConsecutiveGdids(tbNamespace.Text, tbSequence.Text, tbManyCount.Text.AsInt(10));

            var elapsedMs = sw.ElapsedTicks / ((double)Stopwatch.Frequency / 1000d);

            tbOutput.AppendText("Elapsed {0:n3}msec".Args(elapsedMs));

            for (var i = 0; i < many.Length; i++)
            {
                tbOutput.AppendText("{0} {1}\r\n".Args(i, many[i]));
            }
        }