Заполнение контрола данными в отдельном потоке

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ZneP, 17 Jun 2009.

  1. ZneP

    ZneP Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    55
    Likes Received:
    5
    Reputations:
    0
    Добрый день!

    Хочу сделать заполнение контрола ListBox данными из БД в отдельном потоке.

    вот код:

    Code:
    namespace Thread
    {
        public partial class Form1 : Form
        {
            DataSet ds = new DataSet();
    
            OleDbConnection conn = new OleDbConnection();
            OleDbDataAdapter data = new OleDbDataAdapter();
    
            public void FillData()
            {
                conn = new OleDbConnection("...");
    
                data = new OleDbDataAdapter("...", conn);
    
                ds.Tables["list"].Clear();
                data.Fill(ds.Tables["list"]);
            }
    
            public Form1()
            {
                InitializeComponent();
    
                ds.Tables.Add("list");
    
                listBox1.DataSource = ds.Tables["list"];
                listBox1.DisplayMember = "p_name";
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(FillData));
                th.Start();
            }
        }
    }
    
    DataSet в отдельном потоке заполняется нормально, но контрол не обновляется. Какую функцию у контрола необходимо вызвать, чтобы он отображал новые данные из DataSet?