【发布时间】:2010-02-04 18:40:04
【问题描述】:
每次我的代码需要与网络或数据库通信时,我都使用后台工作程序,我可以使用太多吗?执行这些任务的正确方法是什么?
如果我不使用后台工作人员,则 gui 会在远程主机关闭等情况下锁定,因此使用后台工作人员是我知道解决此问题的唯一方法。
我是自学成才,所以我边走边学,感谢所有回答的人。
【问题讨论】:
标签: backgroundworker
每次我的代码需要与网络或数据库通信时,我都使用后台工作程序,我可以使用太多吗?执行这些任务的正确方法是什么?
如果我不使用后台工作人员,则 gui 会在远程主机关闭等情况下锁定,因此使用后台工作人员是我知道解决此问题的唯一方法。
我是自学成才,所以我边走边学,感谢所有回答的人。
【问题讨论】:
标签: backgroundworker
是的,您可以使用太多。 BackgroundWorker 使用线程池中的线程,因此如果您(同时)启动太多线程,您将耗尽线程池。
后台工作人员适用于长时间运行的操作,而不是可能偶尔阻塞的短操作。改用非阻塞 I/O:
【讨论】:
BeginRead 是处理此问题的最佳方式,因为它使用 IOCP。