gpt4 book ai didi

c# - DataGridView 可编辑时 DataGridView/数据集的线程安全更新

转载 作者:行者123 更新时间:2023-12-03 13:21:56 27 4
gpt4 key购买 nike

我有一个包含 Dataset ds 和 DataGridView dgv 的 WinForms 应用程序。 dgv 绑定(bind)到 ds。

ds 通过 Task() 更新,该 Task() 使用 TableAdapter.Fill() 方法定期查询数据库。我在这里遇到了两个问题。

  • 更新 ds 时,不会刷新 dgv,除非调整窗口大小或某些其他事件导致表单重绘。
  • 当用户开始编辑 dgv 中的单元格时,ds 会更新并由于多个线程访问同一个 GUI 控件而导致 UI 崩溃。我尝试使用由 DataGridView dgv 中的某些事件设置的标志 EditModeOn,尽管这无助于防止线程错误。

  • 拥有可由用户编辑并通过更改绑定(bind)数据集(在另一个线程中更新)来更新 DataGridView 的最佳方法是什么?

    最佳答案

    对于您的第 2 点,您可以使用函数 Invoke从控制类。该函数将在 UI 线程中执行该函数。

    http://msdn.microsoft.com/en-us/library/zyzhdc6b.aspx

    前任。 :

    // Invoke an anonymous method on the thread of the form.
    this.Invoke((MethodInvoker) delegate
    {
    //Call your function to update your datagridview with the dataset in parameters
    ...
    });

    关于c# - DataGridView 可编辑时 DataGridView/数据集的线程安全更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5301714/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com