当前位置: 首页>>代码示例>>C#>>正文


C# ConcurrentBag.ElementAt方法代码示例

本文整理汇总了C#中ConcurrentBag.ElementAt方法的典型用法代码示例。如果您正苦于以下问题:C# ConcurrentBag.ElementAt方法的具体用法?C# ConcurrentBag.ElementAt怎么用?C# ConcurrentBag.ElementAt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ConcurrentBag的用法示例。


在下文中一共展示了ConcurrentBag.ElementAt方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: rightDRAWING

        /// <summary>
        /// Сшивка снимков правого глаза
        /// </summary>
        private void rightDRAWING()
        {
            List<Int32> x = new List<Int32>(7);
            List<Int32> y = new List<Int32>(7);
            Int32 iPoint_number;

            //Double x1 = 850, y1 = 750;

            //Расставляем снимки по схеме
            x.Add(1050); y.Add(1150); //1
            x.Add(1050); y.Add(600);  //2
            x.Add(550);  y.Add(700);  //3
            x.Add(450);  y.Add(1150); //4
            x.Add(550);  y.Add(1600); //5
            x.Add(1050); y.Add(1700); //6
            x.Add(1550); y.Add(1600); //7
            x.Add(1650); y.Add(1150); //8
            x.Add(1550); y.Add(700);  //9

            Int32 check = 0;

            //Сомещаем, если есть общие ключевые точки
            //-Для первых трех снимков
            for (Int32 i = 0; i < 3; i++)
            {
                iPointPairs = CreatePairs(iPoints_right[i], iPoints_right[i + 1]);
                iPoint_number = bestIPoint_idSearch();

                if (iPoint_number != -1)
                {
                    Double x1 = iPointPairs.ElementAt(iPoint_number).p1.x - iPointPairs.ElementAt(iPoint_number).p2.x;
                    Double y1 = iPointPairs.ElementAt(iPoint_number).p1.y - iPointPairs.ElementAt(iPoint_number).p2.y;

                    x[i + 1] = Convert.ToInt32(x[i] + x1);
                    y[i + 1] = Convert.ToInt32(y[i] + y1);
                    check++;
                }
            }
            //-Для 4го и 5го снимков
            for (Int32 i = 3; i < 5; i++)
            {
                iPointPairs = CreatePairs(iPoints_right[1], iPoints_right[i]);
                iPoint_number = bestIPoint_idSearch();

                if (iPoint_number != -1)
                {
                    Double x1 = iPointPairs.ElementAt(iPoint_number).p1.x - iPointPairs.ElementAt(iPoint_number).p2.x;
                    Double y1 = iPointPairs.ElementAt(iPoint_number).p1.y - iPointPairs.ElementAt(iPoint_number).p2.y;

                    x[i] = Convert.ToInt32(x[1] + x1);
                    y[i] = Convert.ToInt32(y[1] + y1);
                    check++;
                }
            }
            //-Для 6го и 7го снимков
            for (Int32 i = 5; i < 7; i++)
            {
                iPointPairs = CreatePairs(iPoints_right[0], iPoints_right[i]);
                iPoint_number = bestIPoint_idSearch();

                if (iPoint_number != -1)
                {
                    Double x1 = iPointPairs.ElementAt(iPoint_number).p1.x - iPointPairs.ElementAt(iPoint_number).p2.x;
                    Double y1 = iPointPairs.ElementAt(iPoint_number).p1.y - iPointPairs.ElementAt(iPoint_number).p2.y;

                    x[i] = Convert.ToInt32(x[0] + x1);
                    y[i] = Convert.ToInt32(y[0] + y1);
                    check++;
                }
            }

            MessageBox.Show((9-check).ToString() + " снимков из 9 будут расположены по предустановленным координатам", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);

            Bitmap img = new Bitmap(5000, 4500);

            Graphics g = Graphics.FromImage(img);
            Rectangle rect = new Rectangle(0, 0, img.Width, img.Height);

            SolidBrush blck = new SolidBrush(Color.Black);

            Region fill = new Region(rect);
            g.FillRegion(blck, fill);

            /*
            for (Int32 i = x.Count - 1; i >= 0; i--)
                g.DrawImage(eyeImages_right[i], new Point(x[i], y[i]));
            */

            for (Int32 i = x.Count - 1; i >= 0; i--)
                if (i == 8 || i == 6 || i == 4 || i == 2) g.DrawImage(eyeImages_right[i], new Point(x[i], y[i]));

            for (Int32 i = x.Count - 1; i >= 0; i--)
                if (i == 7 || i == 5 || i == 3 || i == 1 || i == 0) g.DrawImage(eyeImages_right[i], new Point(x[i], y[i]));

            pictureImage.Image = img;

            eyeImages_right.Add(img);
//.........这里部分代码省略.........
开发者ID:ralfzeit,项目名称:surf_diploma_2014,代码行数:101,代码来源:MainForm.cs

示例2: MultiThreadedCompile

        static bool MultiThreadedCompile(int maxParallelism, string workingDirectory, List<string> toCompile, bool overwrite, bool warnAsErrors, bool minify, bool verbose, string spriteProg, string spriteArguments, bool autoCacheBreak, bool autoPrefix, out DependencyGraph dependencies)
        {
            var @lock = new Semaphore(0, toCompile.Count);
            var contexts = new ConcurrentBag<Context>();
            var outMsg = new ConcurrentBag<string>();

            toCompile.AsParallel()
                .WithDegreeOfParallelism(maxParallelism)
                .WithExecutionMode(ParallelExecutionMode.ForceParallelism)
                .ForAll(
                    delegate(string compile)
                    {
                        try
                        {
                            var threadContext = new Context(FileCache);
                            contexts.Add(threadContext);

                            var buffer = new StringBuilder();

                            var outputFile = OutputFileFor(compile, overwrite: overwrite);
                            buffer.AppendLine("\t" + compile);
                            buffer.Append("\tto " + outputFile);

                            var timer = new Stopwatch();
                            timer.Start();

                            var result = Compile(workingDirectory, compile, outputFile, threadContext, minify, warnAsErrors, autoCacheBreak, autoPrefix);

                            timer.Stop();

                            if (result)
                            {
                                buffer.AppendLine(" in " + timer.ElapsedMilliseconds + "ms");
                            }
                            else
                            {
                                buffer.AppendLine(" failed after " + timer.ElapsedMilliseconds + "ms");
                            }

                            outMsg.Add(buffer.ToString());
                        }
                        finally
                        {
                            @lock.Release();
                        }
                    }
                );

            for (int i = 0; i < toCompile.Count; i++)
                @lock.WaitOne();

            var mergedContext = contexts.ElementAt(0);
            for (int i = 1; i < contexts.Count; i++)
            {
                mergedContext = mergedContext.Merge(contexts.ElementAt(i));
            }

            dependencies = mergedContext.Dependecies;

            var infoMessages = mergedContext.GetInfoMessages().ToList();
            var errors = mergedContext.GetErrors();

            if (spriteProg.HasValue())
            {
                foreach (var sprite in mergedContext.GetSpriteFiles())
                {
                    var commandErrors = RunSpriteCommand(spriteProg, workingDirectory, sprite, spriteArguments, infoMessages);

                    errors = errors.SelectMany(s => s.ToList()).Union(commandErrors).ToLookup(k => k.Type);
                }
            }

            if (verbose)
            {
                foreach (var msg in outMsg)
                {
                    Console.Write(msg);
                }

                if (outMsg.Count > 0) Console.WriteLine();
            }

            if (errors.Count > 0)
            {
                var parseErrors = errors.Where(e => e.Key == ErrorType.Parser).SelectMany(s => s.ToList()).Distinct().ToList();
                var compileErrors = errors.Where(e => e.Key == ErrorType.Compiler).SelectMany(s => s.ToList()).Distinct().ToList();

                Print("Errors", parseErrors, compileErrors);
            }

            if (mergedContext.GetWarnings().Count > 0)
            {
                var parseWarnings = mergedContext.GetWarnings().Where(e => e.Key == ErrorType.Parser).SelectMany(s => s.ToList()).Distinct().ToList();
                var compileWarnings = mergedContext.GetWarnings().Where(e => e.Key == ErrorType.Compiler).SelectMany(s => s.ToList()).Distinct().ToList();

                Print("Warnings", parseWarnings, compileWarnings);
            }

            if (verbose && infoMessages.Count > 0)
            {
//.........这里部分代码省略.........
开发者ID:kevin-montrose,项目名称:More,代码行数:101,代码来源:Program.cs


注:本文中的ConcurrentBag.ElementAt方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。