【发布时间】:2011-11-04 00:37:23
【问题描述】:
我有父表单和子表单。父表单包含一个 dataGridView(帐户列表),子表单允许用户注册一个帐户。
子窗体在单独的线程上启动。
当帐户注册时,它被添加到 SQL 数据库中,并且在父表单订阅的子表单上触发事件。然后父窗体更新 dataGridView 以添加来自数据库的新值。
问题是在触发事件时尝试更新父表单中的 dataGridView 时,我得到一个跨线程错误。在这种情况下这是正常行为吗?
【问题讨论】:
-
与 ui 控件的任何交互都必须在创建控件的线程中进行。假设您使用的是 win 表单,您需要使用 Control.BeginInvoke/Invoke 方法与在另一个线程中创建的控件
标签: c#