none
Datagridview 在 thread 中的一些問題 RRS feed

  • 問題

  •  

    我寫了一個 thread 會去收資料

    然後 塞給一個  datatable

    再用  Delegate

    這樣  會發生一個現像  若 我資料push 的很快  就是  threadpush 被呼叫的很快

    整個datagridview 就像 當掉

     

    因為 我想讓  datagridview 能 一筆資料進來按時間排

    所以 寫了

    'DataGridView_Order.ClearSelection()
    'DataGridView_Order.Rows(0).Selected = True

    這兩段

    但一寫 因為 速度太快 整個程式  就沒回應

     

    這種狀況 我該怎麼寫會比較好
     

     

     

    Code Snippet

    public g_DT

    Delegate Sub DelegatesetGridViewOrder()

     

    ..............

     

    public  sub  threadpush(dr as Datarow)

       ....

      g_DT.Rows.InsertAt(dr, 0)

      ....

      Me.BeginInvoke(New DelegatesetGridViewOrder(AddressOf setGridViewOrder), New Object() {})

    end sub

     

     

    Public Sub setGridViewOrder()
            SyncLock DataGridView_Order
                Try

                    Dim m_DT As DataTable = g_DT

                    m_DT.DefaultView.Sort = "TIME DESC"
                    DataGridView_Order.DataSource = m_DT.DefaultView
                    'DataGridView_Order.ClearSelection()
                    'DataGridView_Order.Rows(0).Selected = True
                    DataGridView_Order.Refresh()
                Catch ex As Exception

                End Try

            End SyncLock
        End Sub

     

     

    2008年9月18日 上午 10:12

解答

  • HI,

     

    您可定時更新(例如每分鐘)DataGridView顯示的內容即可, 更新頻率太高本來就會影響程式的顯示

     

    tihs

    2008年9月19日 上午 01:42