C# Winform项目中,无法在线程中调用显示另一个form窗体

sxl_88 2015-03-10 04:24:25

在C# Winform项目中,想实现在线程中调用显示另一个form窗体后,再过三秒后执行webBrowser1对应的url地址。
但是目前程序执行报错,提示"当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。"

代码如下,帮忙看看这么修改下。谢谢!

private void FrmAnalysis_Load(object sender, EventArgs e)
{
timer = new System.Threading.Timer(MyTimerCallback, null, 0, 1000);
}

void MyTimerCallback(object o)
{
TheadPackage();
}

void TheadPackage()
{
System.Threading.Thread thread = new System.Threading.Thread(
new System.Threading.ThreadStart(doWork));
thread.Start();
}


void doWork()
{
try
{

FrmProcess f = new FrmProcess(); //程序执行到此处,报上面的错误
f.Show();

System.Threading.Thread.Sleep(3000); //主要让程序显示FrmProcess窗体后停顿3s再继续执行webBrowser1对应的url

webBrowser1.Navigate("http://www.baidu.com");



}
catch (Exception ex)
{
MessageBox.Show("FrmAnalysis====" + ex.Message);
}
}
...全文
439 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunny5816 2015-03-10
  • 打赏
  • 举报
回复
jason173 2015-03-10
  • 打赏
  • 举报
回复
线程中是不能调用窗体控件的。要用Invoke
於黾 2015-03-10
  • 打赏
  • 举报
回复
委托+1
zhou23141622 2015-03-10
  • 打赏
  • 举报
回复
Appoint.FrmPoint fp = new Appoint.FrmPoint();
                   
                    Application.Run(fp);
这么写
本拉灯 2015-03-10
  • 打赏
  • 举报
回复
窗体控件,要用委托。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧