Пример #1
0
        /**
         * This method uses a Task approach to request a new Magic Number
         * asynchronously, by using await keyword. The caller method does
         * so as weel, so it waits for a Task<int> which actually comes out
         * as a plain int.
         * */
        private async Task <int> RequestMagicNumber()
        {
            MagicNumberCreator mnc = new MagicNumberCreator();
            int newMagicNumber     = await Task.Run(() => mnc.CreateMagicNumber());

            return(newMagicNumber);
        }
Пример #2
0
        private async Task CreateNewMagicNumber()
        {
            cancelationRequested = true;
            MagicNumberCreator mnc = new MagicNumberCreator();
            int newMagicNumber     = await RequestMagicNumber();

            /*
             * This section runs only after the MagicNumber creation
             * process is finished. In the meanwhile, the 'cancelationRequested'
             * flag might be changed from the User request (via UI). In this
             * case the process of showing a new Magic Number is dropped.
             */
            if (cancelationRequested)
            {
                cancelationRequested = false;
                MagicNumberBox.Text  = newMagicNumber.ToString();
                RestoreControls();
            }
        }