• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# CancelWait.TaskInfo类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中System.Threading.Tasks.Tests.CancelWait.TaskInfo的典型用法代码示例。如果您正苦于以下问题:C# TaskInfo类的具体用法?C# TaskInfo怎么用?C# TaskInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



TaskInfo类属于System.Threading.Tasks.Tests.CancelWait命名空间,在下文中一共展示了TaskInfo类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: TaskCancelWait5

        public static void TaskCancelWait5()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Light, "RespectParentCancellation");

            TestParameters parameters = new TestParameters(node, API.Cancel, WaitBy.None, -1);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:9,代码来源:TaskCancelWaitTests.cs


示例2: TaskCancelWait1

        public static void TaskCancelWait1()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Heavy, string.Empty, true);

            TaskInfo node_1 = new TaskInfo(node, "node_1", WorkloadType.Light, string.Empty);

            node.AddChildren(new[] { node_1, });
            TestParameters parameters = new TestParameters(node, API.Cancel, WaitBy.None, -1);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:12,代码来源:TaskCancelWaitTests.cs


示例3: TaskCancelWait4

        public static void TaskCancelWait4()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Light, "AttachedToParent");

            TaskInfo node_1 = new TaskInfo(node, "node_1", WorkloadType.VeryHeavy, "RespectParentCancellation");

            node.AddChildren(new[] { node_1, });
            TestParameters parameters = new TestParameters(node, API.Cancel, WaitBy.None, -1);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:12,代码来源:TaskCancelWaitTests.cs


示例4: TaskCancelWait52

        public static void TaskCancelWait52()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.VeryLight, "None");

            TaskInfo node_1 = new TaskInfo(node, "node_1", WorkloadType.Medium, "LongRunning, RespectParentCancellation");

            TaskInfo node_2 = new TaskInfo(node, "node_2", WorkloadType.VeryLight, "LongRunning, AttachedToParent");

            TaskInfo node_3 = new TaskInfo(node, "node_3", WorkloadType.Medium, "RespectParentCancellation");

            TaskInfo node_4 = new TaskInfo(node, "node_4", WorkloadType.VeryHeavy, "LongRunning");

            TaskInfo node_5 = new TaskInfo(node, "node_5", WorkloadType.VeryHeavy, "LongRunning, RespectParentCancellation");

            TaskInfo node_6 = new TaskInfo(node, "node_6", WorkloadType.VeryLight, "AttachedToParent");

            TaskInfo node_7 = new TaskInfo(node, "node_7", WorkloadType.VeryLight, "LongRunning");

            node.AddChildren(new[] { node_1, node_2, node_3, node_4, node_5, node_6, node_7, });
            TestParameters parameters = new TestParameters(node, API.Wait, WaitBy.Millisecond, 0);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:24,代码来源:TaskCancelWaitTests.cs


示例5: TaskCancelWait49

        public static void TaskCancelWait49()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.VeryLight, "LongRunning, AttachedToParent");

            TestParameters parameters = new TestParameters(node, API.Wait, WaitBy.Millisecond, 0);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:9,代码来源:TaskCancelWaitTests.cs


示例6: TaskCancelWait120

        public static void TaskCancelWait120()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.VeryLight, "LongRunning, RespectParentCancellation");

            TestParameters parameters = new TestParameters(node, API.Wait, WaitBy.Millisecond, 27);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:9,代码来源:TaskCancelWaitTests.cs


示例7: TaskCancelWait126

        public static void TaskCancelWait126()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Heavy, "AttachedToParent");

            TaskInfo node_1 = new TaskInfo(node, "node_1", WorkloadType.VeryLight, "LongRunning, AttachedToParent");

            TaskInfo node_2 = new TaskInfo(node, "node_2", WorkloadType.VeryLight, "None");

            node.AddChildren(new[] { node_1, node_2, });
            TestParameters parameters = new TestParameters(node, API.Wait, WaitBy.Millisecond, 27);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:14,代码来源:TaskCancelWaitTests.cs


示例8: VerifyResult

        private void VerifyResult(TaskInfo current)
        {
            TaskInfo ti = current;
            WorkloadType workType = ti.WorkType;

            if (workType == WorkloadType.Exceptional && _api != API.Cancel)
            {
                bool expCaught = FindException((ex) =>
                {
                    TPLTestException expectedExp = ex as TPLTestException;
                    return expectedExp != null && expectedExp.FromTaskId == ti.Task.Id;
                });

                if (!expCaught)
                    Assert.True(false, string.Format("expected TPLTestException in Task.Name = Task{0} NOT caught", current.Name));
            }
            else
            {
                if (ti.Task.Exception != null && _api == API.Wait)
                    Assert.True(false, string.Format("UNEXPECTED exception in Task.Name = Task{0} caught. Exception: {1}", current.Name, ti.Task.Exception));


                if (ti.Task.IsCanceled && ti.Result != -42)
                {
                    //this means that the task was not scheduled - it was cancelled or it is still in the queue
                    //-42 = UNINITIALED_RESULT
                    Assert.True(false, string.Format("Result must remain uninitialized for unstarted task"));
                }
                else if (ti.Task.IsCompleted)
                {
                    //Function point comparison cant be done by rounding off to nearest decimal points since
                    //1.64 could be represented as 1.63999999 or as 1.6499999999. To perform floating point comparisons, 
                    //a range has to be defined and check to ensure that the result obtained is within the specified range
                    double minLimit = 1.63;
                    double maxLimit = 1.65;

                    if (ti.Result < minLimit || ti.Result > maxLimit)
                        Assert.True(ti.Task.IsCanceled || ti.Task.IsFaulted,
                            string.Format(
                                "Expected Result to lie between {0} and {1} for completed task. Actual Result {2}. Using n={3} IsCanceled={4}",
                                minLimit,
                                maxLimit,
                                ti.Result,
                                workType,
                                ti.Task.IsCanceled));
                }
            }
        }
开发者ID:ChuangYang,项目名称:corefx,代码行数:48,代码来源:TaskCancelWaitTest.cs


示例9: VerifyWait

 /// <summary>
 /// Verify the Wait code path
 /// </summary>
 private void VerifyWait(TaskInfo current)
 {
     TaskInfo ti = current;
     TaskInfo parent = current.Parent;
     if (_taskCompleted)
     {
         if (parent == null)
         {
             Assert.True(ti.Task.IsCompleted, "Root task must complete");
         }
         else if (parent != null && parent.Task.IsCompleted)
         {
             if ((ti.Option & TaskCreationOptions.AttachedToParent) != 0
                 && !ti.Task.IsCompleted)
             {
                 Assert.True(false, string.Format("Inner attached task must complete"));
             }
         }
     }
 }
开发者ID:ChuangYang,项目名称:corefx,代码行数:23,代码来源:TaskCancelWaitTest.cs


示例10: CaluateLeafNodes

        /// <summary>
        /// Walk the tree and calculates the tree nodes count
        /// </summary>
        /// <param name="tree"></param>
        private int CaluateLeafNodes(TaskInfo tree)
        {
            if (tree.IsLeaf)
                return 1;

            int sum = 0;
            foreach (TaskInfo child in tree.Children)
                sum += CaluateLeafNodes(child);

            return sum;
        }
开发者ID:ChuangYang,项目名称:corefx,代码行数:15,代码来源:TaskCancelWaitTest.cs


示例11: TaskCancelWait31

        public static void TaskCancelWait31()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Heavy, "RespectParentCancellation");

            TestParameters parameters = new TestParameters(node, API.Wait, WaitBy.Millisecond, -1);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:9,代码来源:TaskCancelWaitTests.cs


示例12: TaskCancelWait24

        public static void TaskCancelWait24()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Medium, "LongRunning");

            TaskInfo node_1 = new TaskInfo(node, "node_1", WorkloadType.Medium, "LongRunning, AttachedToParent");

            TaskInfo node_2 = new TaskInfo(node, "node_2", WorkloadType.Light, "None");

            node.AddChildren(new[] { node_1, node_2, });
            TestParameters parameters = new TestParameters(node, API.Cancel, WaitBy.None, -1);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:14,代码来源:TaskCancelWaitTests.cs


示例13: TaskCancelWait19

        public static void TaskCancelWait19()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Medium, "LongRunning, AttachedToParent");

            TestParameters parameters = new TestParameters(node, API.Cancel, WaitBy.None, -1);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:9,代码来源:TaskCancelWaitTests.cs


示例14: TaskCancelWait141

        public static void TaskCancelWait141()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Heavy, "LongRunning, RespectParentCancellation");

            TestParameters parameters = new TestParameters(node, API.Wait, WaitBy.TimeSpan, 27);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:9,代码来源:TaskCancelWaitTests.cs


示例15: TaskCancelWait137

        public static void TaskCancelWait137()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Heavy, "RespectParentCancellation");

            TaskInfo node_1 = new TaskInfo(node, "node_1", WorkloadType.Heavy, "RespectParentCancellation");

            TaskInfo node_2 = new TaskInfo(node, "node_2", WorkloadType.Light, "RespectParentCancellation");

            node.AddChildren(new[] { node_1, node_2, });
            TestParameters parameters = new TestParameters(node, API.Wait, WaitBy.TimeSpan, 27);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:14,代码来源:TaskCancelWaitTests.cs


示例16: TaskCancelWait14

        public static void TaskCancelWait14()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.VeryLight, "AttachedToParent");

            TestParameters parameters = new TestParameters(node, API.Cancel, WaitBy.None, -1);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:9,代码来源:TaskCancelWaitTests.cs


示例17: TaskCancelWait53

        public static void TaskCancelWait53()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Medium, "AttachedToParent");

            TaskInfo node_1 = new TaskInfo(node, "node_1", WorkloadType.Heavy, "LongRunning");

            node.AddChildren(new[] { node_1, });
            TestParameters parameters = new TestParameters(node, API.Wait, WaitBy.Millisecond, 0);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:12,代码来源:TaskCancelWaitTests.cs


示例18: CreateTask

        /// <summary>
        /// recursively walk the tree and attach the tasks to the nodes
        /// </summary>
        private void CreateTask(TaskScheduler tm, TaskInfo treeNode)
        {
            treeNode.Task = Task.Factory.StartNew(
                delegate (object o)
                {
                    TaskInfo current = (TaskInfo)o;

                    if (current.IsLeaf)
                    {
                        if (!_countdownEvent.IsSet)
                            _countdownEvent.Signal();
                    }
                    else
                    {
                        // create children tasks
                        foreach (TaskInfo child in current.Children)
                        {
                            if (child.IsRespectParentCancellation)
                            {
                                //
                                // if child to respect parent cancellation we need to wire a linked token
                                //
                                child.CancellationToken =
                                    CancellationTokenSource.CreateLinkedTokenSource(treeNode.CancellationToken, child.CancellationToken).Token;
                            }
                            CreateTask(tm, child);
                        }
                    }

                    if (current.CancelChildren)
                    {
                        try
                        {
                            foreach (TaskInfo child in current.Children)
                            {
                                child.CancellationTokenSource.Cancel();
                            }
                        }
                        finally
                        {
                            // stop the tree creation and let the main thread proceed
                            if (!_countdownEvent.IsSet)
                            {
                                _countdownEvent.Signal(_countdownEvent.CurrentCount);
                            }
                        }
                    }

                    // run the workload
                    current.RunWorkload();
                }, treeNode, treeNode.CancellationToken, treeNode.Option, tm);
        }
开发者ID:ChuangYang,项目名称:corefx,代码行数:55,代码来源:TaskCancelWaitTest.cs


示例19: TaskCancelWait38

        public static void TaskCancelWait38()
        {
            TaskInfo node = new TaskInfo(null, "node", WorkloadType.Medium, "AttachedToParent");

            TestParameters parameters = new TestParameters(node, API.Wait, WaitBy.TimeSpan, -1);

            TaskCancelWaitTest test = new TaskCancelWaitTest(parameters);
            test.RealRun();
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:9,代码来源:TaskCancelWaitTests.cs


示例20: VerifyCancel

        /// <summary>
        /// Cancel Verification
        /// </summary>
        private void VerifyCancel(TaskInfo current)
        {
            TaskInfo ti = current;

            if (current.Parent == null)
            {
                if (!ti.CancellationToken.IsCancellationRequested)
                    Assert.True(false, string.Format("Root task must be cancel-requested"));
                else if (_countdownEvent.IsSet && ti.Task.IsCanceled)
                    Assert.True(false, string.Format("Root task should not be cancelled when the whole tree has been created"));
            }
            else if (current.Parent.CancelChildren)
            {
                // need to make sure the parent task at least called .Cancel() on the child
                if (!ti.CancellationToken.IsCancellationRequested)
                    Assert.True(false, string.Format("Task which has been explictly cancel-requested either by parent must have CancellationRequested set as true"));
            }
            else if (ti.IsRespectParentCancellation)
            {
                if (ti.CancellationToken.IsCancellationRequested != current.Parent.CancellationToken.IsCancellationRequested)
                    Assert.True(false, string.Format("Task with RespectParentCancellationcontract is broken"));
            }
            else
            {
                if (ti.CancellationToken.IsCancellationRequested || ti.Task.IsCanceled)
                    Assert.True(false, string.Format("Inner non-directly canceled task which opts out RespectParentCancellationshould not be cancelled"));
            }

            // verify IsCanceled indicate successfully dequeued based on the observing that
            // - Thread is recorded the first thing in the RunWorkload from user delegate
            //if (ti.Task.IsCompleted && (ti.Thread == null) != ti.Task.IsCanceled)
            //    Assert.Fail("IsCanceled contract is broken -- completed task which has the delegate executed can't have IsCanceled return true")
        }
开发者ID:ChuangYang,项目名称:corefx,代码行数:36,代码来源:TaskCancelWaitTest.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# CancelWait.TestParameters类代码示例发布时间:2022-05-26
下一篇:
C# CancelWait.TaskCancelWaitTest类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap