コード例 #1
0
/////////////////////////////////////////////////////////////////////////////Progress Bar Helper Functions

        private void ConfigureTaskBar(string LabelText, int BarProgressScale, int AsyncTime)
        {
            TaskBar_Panel.Visible    = true;
            TaskBar_TaskText.Text    = LabelText;
            TaskBar_Progress.Maximum = BarProgressScale;
            TaskBar_BG.RunWorkerAsync(argument: new Tuple <int, int>(BarProgressScale, AsyncTime));
        }
コード例 #2
0
///////////////////////////////////////////////////////////////////////////////////////////////////////////Async Wrappers

        private async Task <bool> RenderYAsync(string FileName)
        {
            YImage = await Task.Run(() => RenderY(FileName));

            Roberts_One.Enabled  = true;
            Sobel_Vert.Enabled   = true;
            Prewitt_Diag.Enabled = true;
            Prewitt_Vert.Enabled = true;
            TaskBar_BG.CancelAsync();
            return(true);
        }
コード例 #3
0
        private async void Roberts_One_Click(object sender, EventArgs e)
        {
            if (ImageHolder.Image != null && yExists)
            {
                Roberts_One.Enabled = false;
                ConfigureTaskBar("Rendering Roberts Edge", YImage.Height * YImage.Width, 1);
                Form window = await RenderEdgeWindowAsync("Robert's Cross Edge Detection", 2, new int[] { 6, 7 });

                window.Show();
                TaskBar_BG.CancelAsync();
                Roberts_One.Enabled = true;
            }
        }
コード例 #4
0
        private async void button1_Click(object sender, EventArgs e)
        {
            if (ImageHolder.Image != null && yExists)
            {
                Sobel_Vert.Enabled = false;
                ConfigureTaskBar("Rendering Sobell Edge", YImage.Height * YImage.Width, 3);
                Form window = await RenderEdgeWindowAsync("Sobel Vertical Edge Detection", 3, new int[] { 4, 5 });

                window.Show();
                TaskBar_BG.CancelAsync();
                Sobel_Vert.Enabled = true;
            }
        }
コード例 #5
0
        private async void Prewit_Diag_Click(object sender, EventArgs e)
        {
            if (ImageHolder.Image != null && yExists)
            {
                Prewitt_Diag.Enabled = false;
                ConfigureTaskBar("Rendering Prewitt Diagonal Edge", YImage.Height * YImage.Width, 3);
                Form window = await RenderEdgeWindowAsync("Prewitt Vertical Edge Detection", 3, new int[] { 2, 3 });

                window.Show();
                TaskBar_BG.CancelAsync();
                Prewitt_Diag.Enabled = true;
            }
        }
コード例 #6
0
        private void TaskBar_BG_DoWork(object sender, DoWorkEventArgs e)
        {
            dynamic argTuple = e.Argument;

            for (int i = 0; i < argTuple.Item1; i++)
            {
                if (TaskBar_BG.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }
                System.Threading.Thread.Sleep(argTuple.Item2);
                TaskBar_BG.ReportProgress(1);
            }
            e.Result = true;
        }