Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Backgroundworker vb.net浏览Web浏览器_C#_Vb.net_Webbrowser Control_Backgroundworker - Fatal编程技术网

C# 使用Backgroundworker vb.net浏览Web浏览器

C# 使用Backgroundworker vb.net浏览Web浏览器,c#,vb.net,webbrowser-control,backgroundworker,C#,Vb.net,Webbrowser Control,Backgroundworker,我正在运行一个新项目,它需要通过WebBrowser控件进行导航,以进行登录、单击某些链接、提取数据和下载图片。正如您所设想的那样,它花费了太多的时间,并且假定在应用程序工作时冻结应用程序。为了避免这种情况,我在BackgroundWorker上考虑将其保留在后台,但我发现这表明不建议这样做 考虑到这个项目,基本上,是基于在一个网站上导航,一旦我点击一个按钮,正确的方法应该是什么使它有用?我从未使用过BackgroundWorker,但我想学习它,因此这可能是一个好时机。不建议这样做,不建议。如

我正在运行一个新项目,它需要通过WebBrowser控件进行导航,以进行登录、单击某些链接、提取数据和下载图片。正如您所设想的那样,它花费了太多的时间,并且假定在应用程序工作时冻结应用程序。为了避免这种情况,我在BackgroundWorker上考虑将其保留在后台,但我发现这表明不建议这样做


考虑到这个项目,基本上,是基于在一个网站上导航,一旦我点击一个按钮,正确的方法应该是什么使它有用?我从未使用过BackgroundWorker,但我想学习它,因此这可能是一个好时机。

不建议这样做,不建议。如果您所做的是一个不重复的过程(即,当它完成所有操作后不会重新开始,除非您再次单击按钮),您应该能够使用
DocumentCompleted
事件。看到这一点:(尽管实际的繁重工作/繁重的处理仍然应该在任务/线程/BGW中完成)TL;DR:每次WebBrowser需要加载某个内容或导航到新页面时,都要创建一个新的
DocumentCompleted
事件处理程序,然后在引发该处理程序时将其从自身中删除,以阻止其再次运行,除非您从头开始。这是一个重复的过程。它应该读取一个值列表,并使用循环在此基础上工作。它应该多久读取一次此列表?还是在重新开始之前处理整个列表?如果是后者,那么您仍然可以使用我的解决方案。只需让您的代码再次添加第一个
DocumentCompleted
事件处理程序,并在重新开始时重定向它。它在重新开始时读取列表。它产生多个负载。我的意思是,一旦它获得了列表的值,它就会被用在搜索栏中(因此当它点击提交按钮时会重新加载WebControl),然后它会自动找到我需要的结果,点击它(新建页面,重新加载),最后提取所有信息。它需要3次重新加载,它们之间有不同的操作。我不知道这件事是否可以处理。