示例#1
0
        async void ExecuteCalculatePrimeCommand()
        {
            PrimeService ps = new PrimeService();

            Files.Clear();
            // correct solution
            var numbers = await ps.GetPrimeNumbersAsync(1, 10000); // not faster, but not blocking (its even slower): 40ms

            // eventhough these 2 statements only take 30ms, those will block the ui
            // we can avoid it, by using Task.Start(() => {..}) here
            // correct solution
            numbers = ps.GetPrimeNumbers(1, 10000); // 30ms
            // wrong order
            numbers = ps.GetPrimeNumbersParallel(1, 10000);
            // first call: 25ms
            // very fast at second call<. 4ms (Thread creation is very performance intensive)
            foreach (var prime in numbers)
            {
                Files.Add(prime.ToString());
            }
        }