當前位置: 首頁>>代碼示例>>C#>>正文


C# Test.TestParameters類代碼示例

本文整理匯總了C#中System.Threading.Tasks.Test.TestParameters的典型用法代碼示例。如果您正苦於以下問題:C# TestParameters類的具體用法?C# TestParameters怎麽用?C# TestParameters使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


TestParameters類屬於System.Threading.Tasks.Test命名空間,在下文中一共展示了TestParameters類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: ParallelState7

 public static void ParallelState7()
 {
     string[] actions = new string[] { "MultipleBreak", "MultipleBreak", "MultipleBreak", "MultipleBreak", "MultipleBreak", "MultipleBreak", "MultipleBreak", "MultipleBreak", "MultipleBreak", "MultipleBreak", };
     string[] verifications = new string[] { "BreakVerification", };
     TestParameters parameters = new TestParameters
     {
         Api = API.For,
         Count = 10,
         Actions = actions,
         Verifications = verifications,
         ExpectingException = false,
         WithLocalState = true,
         Is64 = false,
     };
     ParallelStateTest test = new ParallelStateTest(parameters);
     test.RealRun();
 }
開發者ID:ESgarbi,項目名稱:corefx,代碼行數:17,代碼來源:ParallelStateTest.cs

示例2: ParallelStateTest

        private int _iterCount = 0;  // test own counter for certain scenario, so the test can change behaviour after certain number of loop iteration

        #endregion

        #region Constructor

        public ParallelStateTest(TestParameters parameters)
        {
            _parameters = parameters;

            _mreSlim = new ManualResetEventSlim(false);

            _results = new double[parameters.Count];

            _sequences = new List<int>[1024];
            _sequences64 = new List<long>[1024];
            _threadCount = 0;

            // Set available actions
            _availableActions["Stop"] = StopAction;
            _availableActions["Break"] = BreakAction;
            _availableActions["Exceptional"] = ExceptionalAction;
            _availableActions["MultipleStop"] = MultipleStopAction;
            _availableActions["MultipleBreak"] = MultipleBreakAction;
            _availableActions["MultipleException"] = MultipleExceptionAction;
            _availableActions["SyncWaitStop"] = SyncWaitStop;
            _availableActions["SyncSetStop"] = SyncSetStop;
            _availableActions["SyncWaitBreak"] = SyncWaitBreak;
            _availableActions["SyncSetBreak"] = SyncSetBreak;

            _availableActions["SyncWaitStopCatchExp"] = SyncWaitStopCatchExp;
            _availableActions["SyncWaitBreakCatchExp"] = SyncWaitBreakCatchExp;

            _availableActions["SyncWaitExceptional"] = SyncWaitExceptional;
            _availableActions["SyncSetExceptional"] = SyncSetExceptional;

            // Set available verifications
            _availableVerifications["StopVerification"] = StopVerification;
            _availableVerifications["BreakVerification"] = BreakVerification;
            _availableVerifications["ExceptionalVerification"] = ExceptionalVerification;

            _barrier = new Barrier(parameters.Count);

            // A barrier is used in the workload to ensure that all tasks are running before any proceed.
            // This causes delays if the count is higher than the number of processors, as the thread pool
            // will need to (slowly) inject additional threads to meet the demand.  As a less-than-ideal
            // workaround, we change the thread pool's min thread count to be at least the number required
            // for the test.  Not perfect, but better than nothing.
            ThreadPoolHelpers.EnsureMinThreadsAtLeast(parameters.Count);

            int length = parameters.Count;
            if (length < 0)
                length = 0;

            if (parameters.Api != API.For)
            {
                int[] collArray = new int[length];
                for (int j = 0; j < length; j++)
                    collArray[j] = ((int)_startIndex) + j;

                if (parameters.Api == API.ForeachOnArray)
                    _collection = collArray;
                else if (parameters.Api == API.ForeachOnList)
                    _collection = new List<int>(collArray);
                else
                    _collection = collArray;
            }

            int index = 0;
            for (index = 0; index < parameters.Count; index++)
                _actions.Add(DummyAction);

            index = 0;
            foreach (string action in parameters.Actions)
            {
                Action<long, ParallelLoopState> a = null;
                string[] actionIndexPair = action.Split('_');

                if (!_availableActions.TryGetValue(actionIndexPair[0], out a))
                    throw new ArgumentException(actionIndexPair[0] + " is not a valid action");

                _actions[actionIndexPair.Length > 1 ? int.Parse(actionIndexPair[1]) : index++] = a;
            }

            foreach (string verification in parameters.Verifications)
            {
                Action<ParallelLoopResult?> act = null;

                if (!_availableVerifications.TryGetValue(verification, out act))
                    throw new ArgumentException(verification + " is not a valid verification");

                _verifications.Enqueue(act);
            }
        }
開發者ID:ESgarbi,項目名稱:corefx,代碼行數:94,代碼來源:ParallelStateTest.cs

示例3: ParallelState76

 public static void ParallelState76()
 {
     string[] actions = new string[] { "SyncWaitBreak_0", "SyncSetBreak_1", };
     string[] verifications = new string[] { "BreakVerification", };
     TestParameters parameters = new TestParameters
     {
         Api = API.ForeachOnList,
         Count = 10,
         Actions = actions,
         Verifications = verifications,
         ExpectingException = false,
         WithLocalState = true,
         Is64 = false,
     };
     ParallelStateTest test = new ParallelStateTest(parameters);
     test.RealRun();
 }
開發者ID:ESgarbi,項目名稱:corefx,代碼行數:17,代碼來源:ParallelStateTest.cs

示例4: ParallelState49

 public static void ParallelState49()
 {
     string[] actions = new string[] { "SyncSetStop_0", "SyncWaitBreakCatchExp_1", };
     string[] verifications = new string[] { "StopVerification", };
     TestParameters parameters = new TestParameters
     {
         Api = API.ForeachOnArray,
         Count = 10,
         Actions = actions,
         Verifications = verifications,
         ExpectingException = false,
         WithLocalState = false,
         Is64 = false,
     };
     ParallelStateTest test = new ParallelStateTest(parameters);
     test.RealRun();
 }
開發者ID:ESgarbi,項目名稱:corefx,代碼行數:17,代碼來源:ParallelStateTest.cs

示例5: ParallelState36

 public static void ParallelState36()
 {
     string[] actions = new string[] { "Exceptional", };
     string[] verifications = new string[] { "ExceptionalVerification", };
     TestParameters parameters = new TestParameters
     {
         Api = API.ForeachOnArray,
         Count = 10,
         Actions = actions,
         Verifications = verifications,
         ExpectingException = true,
         WithLocalState = true,
         Is64 = false,
     };
     ParallelStateTest test = new ParallelStateTest(parameters);
     test.RealRun();
 }
開發者ID:ESgarbi,項目名稱:corefx,代碼行數:17,代碼來源:ParallelStateTest.cs

示例6: ParallelStateTest

        private int _iterCount = 0;  // test own counter for certain scenario, so the test can change behaviour after certain number of loop iteration

        #endregion

        #region Constructor

        public ParallelStateTest(TestParameters parameters)
        {
            _parameters = parameters;

            _mreSlim = new ManualResetEventSlim(false);

            _results = new double[parameters.Count];

            _sequences = new List<int>[1024];
            _sequences64 = new List<long>[1024];
            _threadCount = 0;

            // Set available actions
            _availableActions["Stop"] = StopAction;
            _availableActions["Break"] = BreakAction;
            _availableActions["Exceptional"] = ExceptionalAction;
            _availableActions["MultipleStop"] = MultipleStopAction;
            _availableActions["MultipleBreak"] = MultipleBreakAction;
            _availableActions["MultipleException"] = MultipleExceptionAction;
            _availableActions["SyncWaitStop"] = SyncWaitStop;
            _availableActions["SyncSetStop"] = SyncSetStop;
            _availableActions["SyncWaitBreak"] = SyncWaitBreak;
            _availableActions["SyncSetBreak"] = SyncSetBreak;

            _availableActions["SyncWaitStopCatchExp"] = SyncWaitStopCatchExp;
            _availableActions["SyncWaitBreakCatchExp"] = SyncWaitBreakCatchExp;

            _availableActions["SyncWaitExceptional"] = SyncWaitExceptional;
            _availableActions["SyncSetExceptional"] = SyncSetExceptional;

            // Set available verifications
            _availableVerifications["StopVerification"] = StopVerification;
            _availableVerifications["BreakVerification"] = BreakVerification;
            _availableVerifications["ExceptionalVerification"] = ExceptionalVerification;

            _barrier = new Barrier(parameters.Count);

            int length = parameters.Count;
            if (length < 0)
                length = 0;

            if (parameters.Api != API.For)
            {
                int[] collArray = new int[length];
                for (int j = 0; j < length; j++)
                    collArray[j] = ((int)_startIndex) + j;

                if (parameters.Api == API.ForeachOnArray)
                    _collection = collArray;
                else if (parameters.Api == API.ForeachOnList)
                    _collection = new List<int>(collArray);
                else
                    _collection = collArray;
            }

            int index = 0;
            for (index = 0; index < parameters.Count; index++)
                _actions.Add(DummyAction);

            index = 0;
            foreach (string action in parameters.Actions)
            {
                Action<long, ParallelLoopState> a = null;
                string[] actionIndexPair = action.Split('_');

                if (!_availableActions.TryGetValue(actionIndexPair[0], out a))
                    throw new ArgumentException(actionIndexPair[0] + " is not a valid action");

                _actions[actionIndexPair.Length > 1 ? int.Parse(actionIndexPair[1]) : index++] = a;
            }

            foreach (string verification in parameters.Verifications)
            {
                Action<ParallelLoopResult?> act = null;

                if (!_availableVerifications.TryGetValue(verification, out act))
                    throw new ArgumentException(verification + " is not a valid verification");

                _verifications.Enqueue(act);
            }
        }
開發者ID:er0dr1guez,項目名稱:corefx,代碼行數:87,代碼來源:ParallelStateTest.cs


注:本文中的System.Threading.Tasks.Test.TestParameters類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。