背景工人C#winform

Red*_*nda 6 c# multithreading backgroundworker winforms

从后台工作者加载一切是不是一个坏主意?当前代码在Form_load上执行.我们从webservice中提取了大量数据.一些长期运行的作品是在后台工作者.

无论代码有多小或多大,从背景工作者加载所有东西都是一个坏主意?在后台工作程序中运行的每个函数?或者这会使这个代码变得混乱和踩踏噩梦.

谢谢.

hem*_*emp 2

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

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

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

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

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