帮我解释下面的一段话

shankaipingo 2008-02-15 09:13:51
帮我解释下面的一段话InvokeRequired是什么时候起作用啊
    

     private void ShowTopic(string strTopicID)
{
if (this.Topic==null) return;
if (this.InvokeRequired)
{

try
{
DelegateShowTopics d = new DelegateShowTopics(ShowTopic);
this.Invoke(d, new object[] { strTopicID });
}
catch
{
}

}
else
{


if (Topic.Id == strTopicID)
{
//打开一个空白页,实际内容在IE_DocumentCompleted中
this.IE.Navigate("");
}
}
}
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿非 2008-02-18
  • 打赏
  • 举报
回复
msdn:

获取一个值,该值指示调用方在对控件进行方法调用时是否必须调用 Invoke 方法,因为调用方位于创建控件所在的线程以外的线程中。
如果控件的 Handle 是在与调用线程不同的线程上创建的(说明您必须通过 Invoke 方法对控件进行调用),则为 true;否则为 false。


就是说非当前线程的线程访问的时候自动就为True了,在当前线程中访问一直是False的。
rodgerluo 2008-02-18
  • 打赏
  • 举报
回复
这个 InvokeRequired 肯定是bool类型
当InvokeRequired 为true 时候
才执行
try
{
DelegateShowTopics d = new DelegateShowTopics(ShowTopic);
this.Invoke(d, new object[] { strTopicID });
}
catch
{
}
我在地球 2008-02-15
  • 打赏
  • 举报
回复
学习

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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