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

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(使用前将#替换为@)

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

  • Pygame 中按钮内的进度条

    期望的行为是 当用户将鼠标放在按钮上时 会出现深灰色进度条并开始以恒定的速度递增 我希望能够确定它完全充满需要多长时间 比如 2 秒 如果在进度条达到 100 之前鼠标移出按钮 进度条应直接变为 0 如果条达到 100 程序应在终端中打印一
  • C# WebClient 使用异步并返回数据

    好吧 我在使用 DownloadDataAsync 并让它返回字节给我时遇到了问题 这是我正在使用的代码 private void button1 Click object sender EventArgs e byte bytes usi
  • 如何制作进度条

    如何在 html css javascript 中制作进度条 我真的不想使用Flash 可以在这里找到类似的内容 http dustincurtis com about html http dustincurtis com about ht
  • AJAX 以渐进方式读取数据,而不仅仅是在完成时读取数据

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

    我必须从可能为 None 的变量中提取值 并考虑一些默认值 我首先写了这段代码 if self maxTiles is None maxX maxY 2 2 else maxX maxY self maxTiles 然后我意识到我可以将其缩
  • 强制 Javascript 编码风格的工具[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要自动检查不同人编写的javascript源代码的风格 你知道有什么好的工具可以做到这一点吗 与 emacs 集成将是一个优势 先感谢
  • Qt Designer 与手动编码

    每次我使用图形工具包开始一个项目时 第一个冲突就会发生在如何处理视觉设计和小部件布局的决定上 图形工具还是手动编码 这是一个非常棘手 主观的问题 因为大多数人会根据个人喜好来决定 它还很大程度上取决于图形工具的质量 在这种情况下 我想只关注
  • 无法在 Silverlight 样式中添加系统颜色?

    我在 XAML 中为 SystemColors 定义了资源 如果我将 Foregroung 属性直接设置为 TextBlock 效果会很好 但是 如果我在样式中分配前景属性 则会收到如下所示的错误 我不确定问题是什么以及如何解决 任何想法都
  • 函数式编程是否需要新的命名约定?

    我最近开始使用 Haskell 学习函数式编程 并在 Haskell 官方 wiki 上发现了这篇文章 如何阅读哈斯克尔 http www haskell org haskellwiki How to read Haskell What t
  • 如何更改所有 ListView 的默认分隔线颜色

    我正在尝试为 style xml 中的所有 listView 应用默认样式 请注意 在某些地方我使用嵌套列表视图 In 样式 xml
  • “if”在 ASP.NET MVC View (.aspx) 文件中被认为有害?

    我记得看到一个博客 或其他内容 说你不应该在 ASP NET MVC 的 aspx 文件中使用 但我不记得它说的替代方案是什么 有人记得看过这个并指出我吗 基本上 这意味着您的视图中不应该有大量的 if 语句 您的控制器和视图模型应该能够处
  • 为了清楚起见,是否应该在返回类型上使用无用的类型限定符?

    当我们的头文件中有原型时 我们的静态分析工具会抱怨 返回类型上有无用的类型限定符 例如 const int foo 我们这样定义它是因为该函数返回一个永远不会改变的常量 认为 API 看起来更清晰const到位 为了清楚起见 我觉得这类似于
  • Node.JS async.parallel 不会等到所有任务完成

    我在用异步并行 https github com caolan async并行运行两个函数 这些函数请求 RSS 源 然后 RSS 提要被解析并添加到我的网页中 但由于某种原因async parallel运行回调方法而不等待两个函数完成 文
  • 防止Java实例化的正确方法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 char 绑定到枚举类型

    我有一段与此非常相似的代码 class someclass public enum Section START MID END vector section Full void ex for int i 0 i section
  • 使用 NullPointerException 来测试 null 是一种不好的风格吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一些遵循以下模式的代码 return a b c d e 现在因为这些方法中的每一种都可以返回null 通常会对此进行测试 if a nul
  • 在 C++ 中检查空指针的首选方法是什么?

    选项A if NULL pSomethingColumn Yes we use Yoda conditions if NULL pSomethingColumn Or if pSomethingColumn if pSomethingCol
  • 需要知道 jQuery UI Widget 是否已应用于 DOM 对象

    我正在使用 jQuery 并与 jQuery UI 进行一些交互 我需要在其中获取选项 然而 有可能 jQuery UI 功能尚未应用于 DOM 对象 当我访问选项时 我现在收到 JavaScript 错误 我有一个带有进度条的 DOM 对
  • 在 Objective C 中使用下划线作为属性名称前缀 [重复]

    这个问题在这里已经有答案了 我以前避免在变量名中使用下划线 这可能是我大学 Java 时代的遗留下来的 因此 当我在 Objective C 中定义属性时 我自然会这样做 In the header interface Whatever N
  • 使用“for”循环迭代 C++ Vector

    我是 C 语言的新手 我已经开始使用向量 并且注意到在我看到的所有代码中通过索引迭代向量 for循环总是基于向量的 在 Java 中 我可能会用 ArrayList 做这样的事情 for int i 0 i lt vector size i

随机推荐

  • 使全局站点包中的一些模块在 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