Ejemplo n.º 1
0
        private async Task AquireMandelbrotSet()
        {
            using (var server = new Server(Host, Port))
            {
                var request = new Request(
                    _random.Next(),
                    CenterX,
                    CenterY,
                    DistanceX,
                    DistanceY,
                    Resolution,
                    MaxIterations,
                    Threshold
                    );
                try
                {
                    await server.SendRequest(request);

                    _cachedData = await server.ReceiveResult();
                }
                catch (Exception e)
                {
                    Log.Error(e.ToString());
                    Debugger.Break();
                }

                ResultReady?.Invoke(this, EventArgs.Empty);
            }
        }
        /// <summary>
        /// Sample the image intensity one time, awaitable for the result, or hook to event
        /// </summary>
        /// <returns>intensity result (Task awaitable)</returns>
        public async Task <double> Trigger()
        {
            double intensity = await _cam.GetIntensity();

            ResultReady?.Invoke(this, new ResultEventArgs(intensity));
            return(intensity);
        }
Ejemplo n.º 3
0
 public void Sqrt(int a)
 {
     Task.Run(() =>
     {
         Console.WriteLine($"Called Sqrt({a}) on thread {Thread.CurrentThread.ManagedThreadId}");
         var result = _calculator.Sqrt(a);
         ResultReady?.Invoke(Thread.CurrentThread.ManagedThreadId.ToString(), new OperationResult(result));
     });
 }
 public TaskAgent(Func <string, string> task, string input)
 {
     this.task  = task;
     this.input = input;
     this.timer = new Timer()
     {
         AutoReset = true, Interval = 1000
     };
     this.timer.Enabled  = false;
     this.timer.Elapsed += (s, e) =>
     {
         var result = task(input);
         ResultReady?.Invoke(this, result);
     };
 }
        private async void buttonAnalyze_Click(object sender, EventArgs e)
        {
            SetAlgoPatternFromUI();
            if (!m_pattern.Contains("1"))
            {
                MessageBox.Show("Please select at least one column to display!", "Error"); //icon
                return;
            }

            List <TypeOfAlgo> neededTypes = new List <TypeOfAlgo>();

            for (int i = 0; i < m_pattern.Length; i++)
            {
                if (m_pattern[i] == '1')
                {
                    neededTypes.Add((TypeOfAlgo)i);
                }
            }

            progressBar.Visible   = true;
            buttonAnalyze.Enabled = false;

            await Task.Factory.StartNew(() =>
            {
                List <Tuple <TypeOfAlgo, double> > resultList = Analyzer.Analyze(neededTypes,
                                                                                 (int)numericUpDownA.Value, (int)numericUpDownB.Value, (int)numericUpDownP.Value, //a, b, p bytes
                                                                                 (int)numericNumRuns.Value);                                                      //number of runs

                DataTable dt = ToDataTable(resultList);

                ResultReady?.Invoke(dt);
            });

            progressBar.Visible   = false;
            buttonAnalyze.Enabled = true;
        }
Ejemplo n.º 6
0
 private void OnResultReady(FileMoveResult result)
 {
     ResultReady?.Invoke(typeof(Desktop), result);
 }