c# winform 数据实时刷新有关问题

c# winform 数据实时刷新问题
我从雷达上获取数据,雷达的收发时间是实时的,大概50ms收取一次消息,很快速.
有一些相关信息我需要获取过来后,在一个GRID上显示,但是我发现一个问题.就是数据实时更新的时候,比如我点击或者拖动窗体会造成卡顿或者假死的情况.以下是我模拟数据实时刷新的代码.请问我这种情况该如何考虑?使用多线程?还是?以下代码只是模拟,可能会有歧义.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 100000; i++)
            {
                this.dataGridView1.DataSource = getTable(i);
                this.dataGridView1.Refresh();
                this.dataGridView1.Update();
            }

        }

        public DataTable getTable(int i)
        {
            DataTable table = new DataTable();
            table.Columns.Add("column1", System.Type.GetType("System.String"));
            table.Columns.Add("column2", System.Type.GetType("System.String"));
            DataRow row = table.NewRow();
            row["column1"] = "AXsasas" + i;
            row["column2"] = "AAdasdas" + i;
            table.Rows.Add(row);
            table.AcceptChanges();
            return table;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //getTable();
            //this.dataGridView1.DataSource = getTable();
        }
    }
}


------解决思路----------------------
我不了解具体需求,也不知道数据结构和界面具体是什么样子的,也帮不了更多了。

那个原型代码估计也就是用了个ConcurrentQueue有些陌生。因为需要一个线程安全的结构来在两个线程之间传递数据,这些Concurrent开头的结构能够保证并发读写的线程安全,这个结构的功能也可以被一个数据库替换。可以把它想象成一个数据池,一方不断往里面填数据,另一方不断从里面取数据。

然后就是UI控件不能直接绑定到这个结构上,需要隔离开才能保证UI不会对数据的生产方发生影响。所以把数据池里面的数据放到了一个专门做绑定用的BindingList里,它可以通过自己的变化直接触发UI更新,方便一点。

这个后面还需要处理内存增长的问题,和界面能一次加载多少数据的问题。