调用ocx控件的ui问题

吴法吴天 2011-03-06 04:27:24
大家好,我想问个问题,ocx控件是主线程创建的,我有一个方法要调用ocx的方法,ocx是远程去取信息回来的。我使用backgroundworker来写,在do_work中让ocx去远程调用,在worker完成后给相关的控件赋值,按道理说这时ui不是不会卡吗?为什么ui会卡呢?
...全文
57 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
吴法吴天 2011-03-07
  • 打赏
  • 举报
回复
我的就是winform程序,请指教,那我是不是主要在main中加STAThread就可以了?
wuyq11 2011-03-06
  • 打赏
  • 举报
回复
UI ActiveX控件只能用于单元线程窗体程序,ASP.NET程序不支持
ActiveX对象的声明放到主线程中.
.ScriptErrorsSuppressed = true;
对此对象的操作可以继续在其他线程 主线程MAIN函数要加
[STAThread]以表示应用程序的 COM 线程模型是单线程单元
webbrower如
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlElement bt = this.webBrowser1.Document.GetElementById("submitFormBtnA");
if (bt != null)
{
backgroundWorker1.RunWorkerAsync("submit");
}
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
hread.Sleep(2000);
HtmlElement ad = this.webBrowser1.Document.GetElementById("submitFormBtnA");
ad.InvokeMember("click");
}

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{

}

110,538

社区成员

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

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

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