在程序中使用子线程来运行负责 网络下载部分 子程调用类的主要运行的代码 class WebBrowserClass
{
WebBrowser myWebPage = new WebBrowser();//
Timer Monitor = new Timer();
public void StartWebBrowser(string Url)
{
myWebPage.ScrollBarsEnabled = true;
myWebPage.ScriptErrorsSuppressed = false;
myWebPage.Navigate(Url);
Monitor.Interval = 3000;
Monitor.Tick += new EventHandler(Monitor_Tick);
Monitor.Start();
} private void Monitor_Tick(object sender, EventArgs e)
{
if (myWebPage.IsBusy == false && myWebPage.StatusText == "完成")
{
BookInfor.StaticClass.WebPageHtml = myWebPage.Document.Body.OuterHtml;
BookInfor.StaticClass.flag = true;
Monitor.Stop();
}
}
}
子线程调用的代码
WebBrowserClass WBC = new WebBrowserClass();
WBC.StartWebBrowser(Url);主要想实现子线程调用类的 StartWebBrowser(string Url) 方法,使用控件WebBrowser.Navigate(Url)方法加载网页,再用触发器每间隔3秒判断WebBrowser控件中的页面是否加载完成。问题是调用后我的 Monitor_Tick 事件不触发,需要怎么改呢?
{
WebBrowser myWebPage = new WebBrowser();//
Timer Monitor = new Timer();
public void StartWebBrowser(string Url)
{
myWebPage.ScrollBarsEnabled = true;
myWebPage.ScriptErrorsSuppressed = false;
myWebPage.Navigate(Url);
Monitor.Interval = 3000;
Monitor.Tick += new EventHandler(Monitor_Tick);
Monitor.Start();
} private void Monitor_Tick(object sender, EventArgs e)
{
if (myWebPage.IsBusy == false && myWebPage.StatusText == "完成")
{
BookInfor.StaticClass.WebPageHtml = myWebPage.Document.Body.OuterHtml;
BookInfor.StaticClass.flag = true;
Monitor.Stop();
}
}
}
子线程调用的代码
WebBrowserClass WBC = new WebBrowserClass();
WBC.StartWebBrowser(Url);主要想实现子线程调用类的 StartWebBrowser(string Url) 方法,使用控件WebBrowser.Navigate(Url)方法加载网页,再用触发器每间隔3秒判断WebBrowser控件中的页面是否加载完成。问题是调用后我的 Monitor_Tick 事件不触发,需要怎么改呢?
解决方案 »
- C# 委托与事件求助
- GRIDVIEW中链接如何传动态值
- 如何判断鼠标是否在控件及其子控件上
- 你搞过吗?C#项目是个MDI主窗体,想调用Delphi的Dll的一个方法,然后Delphi的窗体显示在C#MDI主窗体中
- C++中的结构如何在C#中重新定义,实现完全兼容的数据读取?!
- 在操作INSERT到ACCESS 中,怎样返回自增字段ID
- 问个问题:关于int[][]的,是程序员的都进来瞧瞧。
- 请教C#如何把字符串内容写到一个空白的html中并使得其作为弹出窗口弹出
- 我用vs2005+sql2000做了一个系统,现在想将所有sql中更新、删除操作都记录下来,并将改的时间和修改人姓名都保存起来,怎么做?给个思路
- C# Combobox 当下拉列表关闭时,需要展示输入的数据,不选中第一个匹配的数据
- 水晶报表在打印多个报表时如何控制只输出一个文档????
- C#如何将textbox实时更新的数据自动保存到Excel里面呢
因为你使用的Timer是名字空间System.Windows.Forms.Timer下的,他不支持多线程操作。
而System.Timers.Timer名字空间下的Timer才支持多线程操作。
把这个换了就OK。