架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7139|回复: 5

[WinForm] 后台线程如何操作框架网页

[复制链接]
发表于 2019-1-22 21:43:08 | 显示全部楼层 |阅读模式
首先说下,如果我用UI线程执行下面的语句是没有问题的
        private  void button9_Click_1(object sender, EventArgs e)
        {
            mshtml.HTMLDocument doc = GetIe("网址");// GetIe是一个获取指定网址IE文档的方法;
            doc.frames.item(0).document.all.item("txtLimits").innerText = "123";
        }
但是,如果我把它放在后台线程中,就会抛异常:InvalidCastException,指定的转换无效,代码如下
   private async void button9_Click_1(object sender, EventArgs e)
        {
            Action action = new Action(test12);
            await Task.Run(action);
        }
        private void test12()
        {
            mshtml.HTMLDocument doc = GetIe("网址");
            doc.frames.item(0).document.all.item("txtLimits").innerText = "123";
        }

。。。求教正确的该如何写呢?




上一篇:今天的c#学习笔记
下一篇:《闪乱神乐爆裂:Re:Newal》中英文免安装版
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-1-23 08:03:26 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-1-23 09:08:36 | 显示全部楼层

评分

参与人数 1MB +1 贡献 +1 收起 理由
crystal0330 + 1 + 1 很给力!

查看全部评分

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2019-1-23 22:04:56 | 显示全部楼层

非常谢谢,问题解决了,只是我刚刚接触异步,不明白为什么要这样写,如果能解释一下就更完美了。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2019-1-24 06:38:37 | 显示全部楼层
本帖最后由 crystal0330 于 2019-1-24 06:55 编辑

你好,我后续还遇到了一下问题:



其中,ClickYes是一个能让鼠标移动到弹窗的确定按钮并进行两次点击的方法



现在有遇到两个问题:
1.写成这个样子,ClickYes只能让鼠标进行第二次点击,也就是说,第一次点击不执行了,如果在UI线程,可以进行两次点击的;
2.我在ClickYes的方法里面打了断点,程序中断后,再按F11,并没有执行ClickYes中的下一步代码。。那如何进行逐步调试呢?

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2019-1-24 14:33:03 | 显示全部楼层

你好,我刚刚又试了下,这样写的话,winform的界面又卡住了,跟直接用UI线程是一样的效果。。。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-29 23:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表