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);
            }
     
  • 相关阅读:
    关于基础排序算法的思考--插入排序
    关于购物车的多层复选全选
    随便写写
    第一篇小博文
    C# 遍历目录下所有文件方法
    C#驱动MongoDB官方中查询条件Query用法
    mongodb 修改远程连接
    Python 爬虫练习低调163疫情数据辽宁地图
    jquery easyui datagrid drop事件执行顺序
    https request报错 ServicePointManager.SecurityProtocol 搞定
  • 原文地址:https://www.cnblogs.com/gisoracle/p/12629425.html
Copyright © 2011-2022 走看看