zoukankan      html  css  js  c++  java
  • ArcGIS Pro的进度条

    protected override async void OnClick()
    {
        using (var progress = new ProgressDialog("Showing Progress", "Canceled", 100, false))
        {
            var status = new CancelableProgressorSource(progress);
            status.Max = 100;
            progress.Show();

            await QueuedTask.Run(async () =>
            {
                uint step = 0;
                for (var idx = 0; idx < 10; idx++)
                {
                    await Task.Delay(1000);
                    status.Progressor.Value += 10;
                    status.Progressor.Status = (status.Progressor.Value * 100 / status.Progressor.Max) + @" % Completed";
                    status.Progressor.Message = "Message " + status.Progressor.Value;
                }
            }, status.Progressor);

            progress.Hide();
        }
    }
    ==================================
     public async Task Progressor_Cancelable()
            {
                ArcGIS.Desktop.Framework.Threading.Tasks.CancelableProgressorSource cps =
                  new ArcGIS.Desktop.Framework.Threading.Tasks.CancelableProgressorSource("Doing my thing - cancelable", "Canceled");
    
                int numSecondsDelay = 5;
                //If you run this in the DEBUGGER you will NOT see the dialog
    
                //simulate doing some work which can be canceled
                await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
                {
                    cps.Progressor.Max = (uint)numSecondsDelay;
                    //check every second
                    while (!cps.Progressor.CancellationToken.IsCancellationRequested)
                    {
                        cps.Progressor.Value += 1;
                        cps.Progressor.Status = "Status " + cps.Progressor.Value;
                        cps.Progressor.Message = "Message " + cps.Progressor.Value;
    
                        if (System.Diagnostics.Debugger.IsAttached)
                        {
                            System.Diagnostics.Debug.WriteLine(string.Format("RunCancelableProgress Loop{0}", cps.Progressor.Value));
                        }
                        //are we done?
                        if (cps.Progressor.Value == cps.Progressor.Max) break;
                        //block the CIM for a second
                        Task.Delay(1000).Wait();
    
                    }
                    System.Diagnostics.Debug.WriteLine(string.Format("RunCancelableProgress: Canceled {0}",
                                                        cps.Progressor.CancellationToken.IsCancellationRequested));
    
                }, cps.Progressor);
            }
     
  • 相关阅读:
    虚拟化碎片知识
    CentOS升级内核及KVM安装(已试验,可行)
    Libvirt 虚拟化库剖析
    [ACM]Max Sum
    [ACM]n a^o7 !
    [java]ActionEvent事件:获取输入字符串的长度
    [ACM]The Best Seat in ACM Contest
    [java]ItemEvent事件:简单计算器
    通过注册表的句柄得到当前句柄在注册表中的路径
    [测试模式]Setup方法的滥用
  • 原文地址:https://www.cnblogs.com/gisoracle/p/12629425.html
Copyright © 2011-2022 走看看