c# - 后台 worker C# winform

标签 c# winforms multithreading backgroundworker

从后台 worker 加载所有东西是个坏主意吗? 当前代码在 Form_load 上执行。我们从网络服务中提取了大量数据。一些长时间运行的作品在后台工作。

无论代码大小,从后台加载所有东西都是个坏主意吗? 在后台工作程序中运行的每个功能? 或者这会让这段代码变得困惑和噩梦。

谢谢。

最佳答案

代码的大小不是您应该用来确定是否在单独的线程上执行工作的指标。最坏情况下的执行时间是。

首先,真正需要在 Form_Load 上完成大量工作的 UI 设计并不多。如果可能的话,我通常会:

  • 在直接打开表单以响应用户操作之前启动这项工作。
  • 将所有工作转移到后台并异步更新(绑定(bind)?)结果到表单。
  • 延迟工作,直到用户专门执行某些需要它的操作。

无论完成多少工作,您的用户都希望/期望您的表单非常快速且响应迅速。在 Form_Load 期间执行可能长时间运行的操作总是会导致糟糕的用户体验。

BackgroundWorker 只是异步执行工作的一种机制,还有许多其他机制。您应该选择最适合每种情况的一种。

关于c# - 后台 worker C# winform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3162310/

相关文章:

C#虚方法问题

winforms - 如何正确重置增量计数器?

c# - 可编辑的 TreeView

java - grpc-java的ServerBuilder中executor的具体用途是什么?它只是执行处理程序方法吗?

Java信号量实现和设计相关问题

java - 在java中并行化for循环

c# - 自定义 Windows 7 登录

c# - 在 C# 应用程序中获取集群 azure kubernetes 服务 (AKS) 运行状况/可用性

c# - 文件观察器可以读取放置在观察路径上的文件夹的内容吗?

c# - 在 C# 中打印 Form/UserControl