Exemple #1
0
        static void Main(string[] args)
        {
            SomePrinter printer = new SomePrinter();

            printer.EvenNumberAppeared += (number) => Console.WriteLine("Pasirode lyginis skaicius {0}", number);
            printer.PrintList(new List <int>()
            {
                3, 2, 7, 5, 8, 4, 9
            });



            Thread th  = new Thread(ParMethod);
            Thread th2 = new Thread(ParMethod2);

            //th.Start();
            //th2.Start();
            //th2.Join();
            //th.Join();

            ThreadPool.QueueUserWorkItem((s) => Console.WriteLine("ffdkfkdh"));

            Task t  = new Task(() => Console.WriteLine("a"));
            Task t2 = new Task(() => { Thread.Sleep(10); Console.WriteLine("b"); });
            Task t3 = new Task(() => { Thread.Sleep(10); Console.WriteLine("c"); });

            t.Start();
            t2.Start();
            t3.Start();

            var t4 = t.ContinueWith((task) => Console.WriteLine("d")).ContinueWith((task) => Console.WriteLine("e"));

            Task.WhenAll(new[] { t2, t3, t4 }).ContinueWith((task) => Console.WriteLine("Done")).Wait();


            Task <int> tt2 = new Task <int>(() => { Thread.Sleep(1000); return(10); });

            tt2.Start();
            Console.WriteLine(tt2.Result);

            var tttt = TestAsync();

            Console.WriteLine("bbbbbb");
            tttt.Wait();

            TestNonAsyncDemo();
        }
Exemple #2
0
        static void Main(string[] args)
        {
            SomePrinter printer = null;

            string name;

            Console.Write("What is your name? ");
            name = Console.ReadLine();
            Console.WriteLine("Hi {0}, let's compute!", name);

            Console.WriteLine("Would you like to see results as 0) no output 1) normal 2) fancy output? or 3) both?");
            int printChoice = int.Parse(Console.ReadLine());

            switch (printChoice)
            {
            case 0:
                break;

            case 1:
                printer = printResultNormal;
                break;

            case 2:
                printer = printResultFancy;
                break;

            case 3:
                printer  = printResultNormal;
                printer += printResultFancy;
                break;

            default:
                printer = printResultNormal;
                break;
            }


            while (true)
            {
                Console.WriteLine("What operation would you like to do?");
                Console.WriteLine("1. Add, 2. Subtract, 3. Multiply, 4. Divide, 0. Exit.");
                Console.Write("Your choice:");
                int choice;
                if (!int.TryParse(Console.ReadLine(), out choice))
                {
                    Console.WriteLine("Error: invalid choice, try again.");
                    continue;
                }
                if ((choice < 0) || (choice > 4))
                {
                    Console.WriteLine("Error: invalid choice, try again.");
                    continue;
                }
                //
                if (choice == 0)
                {
                    Console.WriteLine("Good bye, {0}!", name);
                    break;
                }
                // The rest goes here...
                int val1, val2;
                Console.Write("Enter the first parameter: ");
                if (!int.TryParse(Console.ReadLine(), out val1))
                {
                    Console.WriteLine("Error: invalid value, try again.");
                    continue;
                }
                Console.Write("Enter the second parameter: ");
                if (!int.TryParse(Console.ReadLine(), out val2))
                {
                    Console.WriteLine("Error: invalid value, try again.");
                    continue;
                }
                //
                switch (choice)
                {
                case 1:     // add
                    if (printer != null)
                    {
                        printer(name, val1, val2, val1 + val2);
                    }
                    break;

                case 2:     // sub
                    if (printer != null)
                    {
                        printer(name, val1, val2, val1 - val2);
                    }
                    break;

                case 3:     // mul
                    if (printer != null)
                    {
                        printer(name, val1, val2, val1 * val2);
                    }
                    break;

                case 4:     // div
                    if (printer != null)
                    {
                        printer(name, val1, val2, val1 / val2);
                    }
                    break;

                default:
                    Console.WriteLine("Oops. I don't know this operation");
                    break;
                }
            }
        }