向用户报告进度时如何编写最简洁的代码?

2024-03-08

在过去的几个月里,我一直在努力想出一些干净的代码来向用户报告进度。一切似乎总是归结为:

ReportProgress("Starting Task 1");
doTask1();
ReportProgress("Task 1 is done");

ReportProgress("Starting Task 2");
doTask2();
ReportProgress("Task 2 is done");

//etc... where report progress does some form of output to the user.

我内心的优秀程序员尖叫着“必须有一种更干净的方法!”但我很困惑。有什么想法吗?

编辑:我正在寻找更多有关架构信息的信息,而不是特定于实现的信息。给出的代码是very过于简单化了。


将您的任务设置为事件流,并让事件处理“引擎”报告进度。如果您想做到这一点,每个事件实例都可以有自己的名称、进度报告简介/模板等

如果这是一种经常发生的模式,那么基础设施方面的努力是值得的。完成后,可用的代码可能类似于:

EventQueue tasks = new EventQueue();
tasks.Add(new TaskEvent(this.doTask1,"Foo-ing the bar"));
tasks.Add(new TaskEvent(this.doTask2,"Bar-ing the foo"));
tasks.Add(new TaskEvent(this.doTask3,"Glitching and whinging"));
...
tasks.Execute(this.ProgressEventHandler);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向用户报告进度时如何编写最简洁的代码? 的相关文章

  • 主题中的文本外观

    我想将主题中的文本外观设置为 TextAppearnance Large 这是我在 styles xml 中所做的事情 我的应用程序在清单中指向这个主题 问题 我的文字仍然显示很小 问题 我在尝试在活动中使用预定义的 TextAppeara
  • 在 .NET 中可以将数组或列表作为属性返回吗?

    我正在阅读 MSDN 上的一些文档 了解有关某些内容是否应该作为属性或方法实现的注意事项 我特别遇到了一条规则 对此我有疑问 如果 操作返回一个数组 请使用方法 而不是属性 页面在这里 在属性和方法之间进行选择 https msdn mic
  • AJAX 以渐进方式读取数据,而不仅仅是在完成时读取数据

    我喜欢为我的 ajax 调用创建一个进度条 为此 我可以使我的服务器端脚本返回其进度状态 所以我需要 JavaScript 来读取这个进度级别并显示它 有可能吗还是我走错了路 你可以尝试这样的事情 一些伪代码 假设是 jQuery 因为你已
  • x 或 y:可接受的习语,还是混淆?

    我必须从可能为 None 的变量中提取值 并考虑一些默认值 我首先写了这段代码 if self maxTiles is None maxX maxY 2 2 else maxX maxY self maxTiles 然后我意识到我可以将其缩
  • Qt Designer 与手动编码

    每次我使用图形工具包开始一个项目时 第一个冲突就会发生在如何处理视觉设计和小部件布局的决定上 图形工具还是手动编码 这是一个非常棘手 主观的问题 因为大多数人会根据个人喜好来决定 它还很大程度上取决于图形工具的质量 在这种情况下 我想只关注
  • 获取集合时的 ​​Backbone.js 进度条

    我想在用新内容更新应用程序时显示进度条 我想最好的办法是在集合上调用 fetch 时执行此操作 我获取的内容主要是图像 视频海报等 但我只获取链接 而不是 base64 字符串或大的东西 我想做的是在获取图像链接时用进度条覆盖屏幕 渲染视图
  • 函数式编程是否需要新的命名约定?

    我最近开始使用 Haskell 学习函数式编程 并在 Haskell 官方 wiki 上发现了这篇文章 如何阅读哈斯克尔 http www haskell org haskellwiki How to read Haskell What t
  • 使用循环计算 Python 字典中元素的有效方法

    我有一个值列表 我希望在循环期间计算每个类的元素数量 即 1 2 3 4 5 mylist 1 1 1 1 1 1 2 3 2 2 2 2 3 3 4 5 5 5 5 mydict dict for index in mylist mydi
  • 上传进度条 Java Servlet?

    我想使用 servlet 显示上传进度条 我尝试过Ajax iFrame 技术 页面没有重新加载 文件也被上传 但是 进度条没有出现 有没有可用于 javaservlts 的 jQuery 进度插件 Thanks 我强烈推荐jQuery 上
  • C++ getter 和 setter 最佳风格

    Java 代码约定简单明了 采用这种风格 public int GetMyAge return myAge void SetMyAge int myAge this gt myAge myAge private int myAge 我知道这
  • Android 通知进度条冻结

    这是我正在使用的代码 http pastebin com 3bMCKURu http pastebin com 3bMCKURu 问题是 一段时间后 文件变得更重 通知栏下拉速度变慢 最后它就冻结了 你的通知太频繁了 这就是它冻结的原因 让
  • TensorFlow 2.0:在自定义训练循环中显示进度条

    我正在为音频分类任务训练 CNN 并且使用带有自定义训练循环的 TensorFlow 2 0 RC 如中所述本指南 https www tensorflow org beta guide keras training and evaluat
  • C++ 用纯虚方法重写纯虚方法

    用另一个纯虚拟方法覆盖一个纯虚拟方法是否有意义 是否存在任何功能差异或代码风格原因使您更喜欢以下选项之一而不是另一个 class Interface public virtual int method 0 class Abstract pu
  • 在 C++ 中检查空指针的首选方法是什么?

    选项A if NULL pSomethingColumn Yes we use Yoda conditions if NULL pSomethingColumn Or if pSomethingColumn if pSomethingCol
  • ASP.NET AJAX 进度条:从代码隐藏更新?

    我在应用程序中具有 Excel 电子表格的导入功能 目前它使用 FileUpload 控件 我上传文件 然后对该文件运行操作 我想通知用户正在完成的操作以及完成的百分比 我认为我可以获取从 Excel 电子表格中提取的总行数 并在将每条记录
  • 在 Objective C 中断言每个对象创建都成功是必要的吗?

    我最近阅读了Apple的示例代码MVC网络 http developer apple com library ios samplecode MVCNetworking 由 Apple 开发者技术支持大师 Quinn The Eskimo 撰
  • 是否可以让 webpacks System.import 使用 ajax (用于进度事件)?

    所以我刚刚更新到 webpack 2 并进行了第一个工作设置 其中 webpack 通过查看 System import 调用自动创建块 相当甜蜜 但是 我使用 ajax 调用加载初始块 以便我可以加载时显示进度 https stackov
  • AppWidget 中的进度条

    我在应用程序小部件中使用 ProgressBar 时遇到了一个有趣的情况 文档 http developer android com guide topics appwidgets index html http developer and
  • HTML5进度条动画

    我在我的应用程序中使用 HTML5 进度条 我想知道是否有什么方法可以控制进度条的动画速度 我想在一定时间间隔后显示进度 我使用 javascript 的 setTimeout 方法做到了这一点 以便它在屏幕渲染后设置值 但动画太快了 有什
  • 如何更改 AlertDialog 中列表项的文本颜色

    您好 我正在尝试更改列表中项目的文本颜色ListPreference弹出窗口 我花了一个多小时查看所有各种样式名称 但找不到TextAppearance或任何与此特定文本相关的内容 感谢您的帮助 你不能也不应该 Preference使用来自

随机推荐

  • 使全局站点包中的一些模块在 virtualenv 中可用

    我想使用 virtualenv 的默认值 无站点包 但有些模块很难安装在 virtualenv 中 例如 gtk 我所说的 困难 是指您需要安装大量的 c 头文件并且需要编译大量的内容 我知道我可以通过不使用 pip 安装这些包来解决这个问
  • Windows Phone 7 的水印文本框?

    我正在寻找某种适用于 Windows Phone 7 的 WatermarkedTextBox 但我需要一个自定义控件 而不是如何实现水印行为或如何处理 GotFocus LostFocus 事件 官方已添加此内容Windows Phone
  • 如何在 Google App Engine 中运行自定义 python 脚本

    对于这么长的详细问题表示歉意 开始 该文件的名称为 send daily report py 并使用一些库 这些库在requirements txt 文件中详细介绍 My app yaml看起来如下 runtime python27 thr
  • 如何在 moment.js 中设置解析区域?

    不幸的是 我没有在文档中找到答案 所以 例如 我输入日期 09 01 2017 我不知道 它是 DD MM YYYY 或 MM DD YYYY 但我知道用户区域设置 我可以得到像下面这样的东西吗 let date 09 01 2017 lo
  • 输入按键时获取 UITextField 的值?

    假设我有以下代码 IBOutlet UITextField nameTextField IBOutlet UILabel greetingLabel 我想要greetingLabel用户按下任意键后立即读取 Hello nameTextFi
  • Next.js:匹配根“/”和动态路由“/param”的页面

    我有一个使用 Next js 的单页面网站 我在路线上有主页 显示产品列表 该页面的代码位于pages index js 每个产品都有一个id所以我可以使用跳转到它 product id 为了使其更加 url 友好 我使用以下命令复制此行为
  • 默认情况下,按字母顺序对 Woocommerce 产品目录进行排序

    在带有 Avada 主题的 Woocommerce 中 我尝试使用以下代码按 DESC 顺序按字母顺序对产品进行排序 add filter woocommerce get catalog ordering args custom wooco
  • 在 ionic 框架中显示连接错误消息

    我正在开发一个离子移动应用程序 但很难显示连接错误消息 当设备未连接到互联网或连接超时或其他情况时 我想显示一个弹出窗口来显示错误消息 这是我第一次遇到这样的事情 首先将插件添加到您的项目中 然后在你的 app js 中包含以下代码 js
  • 如何访问可重用组件内的 ngModel 元素

    我的可重用组件中有一个 ngModel 组件 该字段不是表单的一部分 我想访问它来进行一些更改 我尝试了下面的代码 但它在 OnInit 中未定义 你能告诉我如何访问它吗 下面的代码返回未定义 ViewChild nameAccessor
  • Android 证书已过期

    目前 我在签署我的应用程序时收到一条错误消息 指出证书已过期 不是调试证书 我知道这令人惊讶 因为 Android 证书应该可用很多年 我无法创建新证书 因为在 PlayStore 上更新我的 apk 时出现错误 apk 的证书必须与前一个
  • Excel SpillParent 和 SpillingToRange 难度

    我正在尝试使用 SpillParent and SpillingToRange在某些 UDF 中的 Excel 中的 Range 对象上 当该范围不在调用 UDF 的同一工作表上时 会出现意外行为 我知道如果我使用 溢出运算符 我不需要这样
  • `npm install` 在 node-gyp 重建上失败,并显示“gyp:未检测到 Xcode 或 CLT 版本!”

    每次我尝试npm install 我收到以下错误 我如何解决它 gyp No Xcode or CLT version detected I am on node v v8 8 0 npm v v6 11 3 我尝试在 VSCode 终端和
  • sbt - 对象 apache 不是包组织的成员

    我想使用 sbt 部署并提交 Spark 程序 但它抛出错误 Code package in goai spark import org apache spark SparkContext SparkConf object SparkMeA
  • Laravel 中添加路由名称前缀而不添加 URI 前缀

    我有两个命名空间 Front and Admin For Admin 名称空间 可以将所有路径添加为前缀admin conrtoller action 但对于 Front 我想要有前缀的路由名称而不带前缀 URI Route group a
  • Facebook API - 权限错误

    有人知道 Facebook API 错误的原因是什么吗 当用户通过 feed 调用发帖时 有时会出现这种情况 error message Permissions error type FacebookApiException code 20
  • 如何限制激励视频广告长度 (admob)?

    我的应用程序使用激励视频广告 但在我看来 有时广告太长 如何设置广告时长限制 这不是 AdMob 提供的功能 不过 感觉太长的广告通常会收到较少的点击次数 因此随着系统的调整 显示的频率会越来越低
  • Nhibernate 对 select 进行更新?

    我有以下课程 public class Product public virtual Guid Id get set public virtual string Name get set public virtual Decimal Pri
  • java.lang.IllegalStateException:保存状态失败:活动已清除片段中的索引

    首先 我的应用程序的结构如下 SpashActivity gt MainActivity gt switching between many fragments 我的应用程序使用幻灯片菜单 https github com jfeinste
  • 将 Numpy 数组“转换”为 Matlab,反之亦然

    我正在寻找一种将 NumPy 数组传递给 Matlab 的方法 我已经成功地通过使用将数组存储到图像中来做到这一点scipy misc imsave然后使用加载它imread 但这当然会导致矩阵包含 0 到 256 之间的值 而不是 真实
  • 向用户报告进度时如何编写最简洁的代码?

    在过去的几个月里 我一直在努力想出一些干净的代码来向用户报告进度 一切似乎总是归结为 ReportProgress Starting Task 1 doTask1 ReportProgress Task 1 is done ReportPr