难以理解c#方法描述

Can*_*ner 0 c#

我在看Control.BeginInvoke方法,当它说:

在创建控件的基础句柄的线程上异步执行委托.

什么是control's underlying handle?它有什么作用?

Mar*_*ell 6

控件具有"线程关联性" - 这意味着需要它们仅由创建它们的线程(通常称为UI线程)直接操作(或甚至检查,除了一些特定属性,除外InvokeRequired).该手柄是简单的操作系统控制和.NET控件之间的抽象.

这实际上是在Windows消息循环上放置一条消息,由UI线程(拥有该控件)获取,从而导致在UI线程上调用您的委托.这意味着它可以与控件通信.如果您当前在后台线程(可能是异步回调或BackgroundWorker),并且需要更新UI,这将非常有用.