在 Windows 应用程序中,选项卡用于将相关的控件集中在一起,放在一个页面中用以显示多种综合信息。选项卡控件通常用于显示多个选项卡,其中每个选项卡均可包含图片和其他控件。选项卡相当于多窗体控件,可以通过设置多页面方式容纳其他控件。由于该控件的集约性,使得在相同操作面积可以执行多页面的信息操作,因此被广泛应用于Windows设计开发之中,被很多程序员所喜爱。
访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。 .NET Framework 有助于在以非线程安全方式访问控件时检测到这一问题。在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一个 InvalidOperationException,并提示消息:“从不是创建控件 control
如何:对 Windows 窗体控件进行线程安全调用
访问 Windows 窗体控件本质上不是线程安全的。 如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。 还可能会出现其他与线程相关的 Bug,例如争用情况和死锁。 确保以线程安全方式访问控件非常重要。
在未使用 Invoke 方法的情况下,从不是创建某个控件的线程的其他线程调用该控件是不安全的。 以下非线程安全的调用的示例。
// This event handler creates a thread that