在多线程环境中更新 DataGrid 视图
Posted
技术标签:
【中文标题】在多线程环境中更新 DataGrid 视图【英文标题】:Updating DataGrid View in Multithreaded Environment 【发布时间】:2010-02-26 09:15:58 【问题描述】:我有一组 c++ dll 和一个 c# exe 。我的 c++ dll 是多线程的,它们将数据放入数据库中。我的 c# exe 使用 Background worker 。我的 c# exe 将这些数据异步获取到数据表中。为了实现这一点,我使用了命名互斥锁。我的问题是当我将此数据表分配给我的网格视图时它崩溃了。我正在使用代表和 Begin Invoke 。
【问题讨论】:
【参考方案1】:begin invoke 是指 myDelegate.BeginInvoke 吗? 你可以试试 myForm.Invoke 这会在 UI 线程上运行委托...
【讨论】:
使用 Form.Invoke 后也崩溃了 好吧,如果你只是说它崩溃了,它很难帮助你,你必须更具体。 调用后我释放了一个互斥锁,以便我的 c++ dll 可以再次使用数据库。我的网格也在更新,但它在更新时崩溃。 什么类型的崩溃? C# 在堆栈跟踪中写了什么? 它在调试模式下完美运行。当我直接启动 exe 时它崩溃了以上是关于在多线程环境中更新 DataGrid 视图的主要内容,如果未能解决你的问题,请参考以下文章