Retreiving a list of available SQL Servers in a new thread.

I use the snippet listed below to get a list of available SQL Server instances.  I would like to find an example of how to execute this in a separate thread so as not have the application appear "frozen".  

Thanks!
DataTable dt = SmoApplication.EnumAvailableSqlServers(false);
ListServers.DisplayMember = "name";
ListServers.ValueMember = "name";
ListServers.DataSource = dt.DefaultView;

Open in new window

andy_eeAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Gautham JanardhanConnect With a Mentor Commented:

public partial class FormSQLServerList : Form
{
    public FormSQLServerList()
    {
        InitializeComponent();
    }
    private void FormSQLServerList_Load(object sender, EventArgs e)
    {
        System.Threading.Thread t = new
        System.Threading.Thread
        (
        new ThreadStart
        (delegate
        {
            DataTable dt = SmoApplication.EnumAvailableSqlServers(false);
            ListAvailableSQLServers.Invoke(new ThreadStart(delegate
            {
                ListAvailableSQLServers.DisplayMember = "name";
                ListAvailableSQLServers.ValueMember = "name";
                ListAvailableSQLServers.DataSource = dt.DefaultView;
            }), null);
        }
        ));
        t.Start();
    }
}

Open in new window

0
 
AUmidhCommented:
Here is a sample of threading
http://www.yoda.arachsys.com/csharp/threads/
0
 
Gautham JanardhanCommented:

System.Threading.Thread.Start
(
new ThreadStart
(delegate
{
DataTable dt = SmoApplication.EnumAvailableSqlServers(false);
ListServers.DisplayMember = "name";
ListServers.ValueMember = "name";
ListServers.DataSource = dt.DefaultView;
 
}
));

Open in new window

0
Build your data science skills into a career

Are you ready to take your data science career to the next step, or break into data science? With Springboard’s Data Science Career Track, you’ll master data science topics, have personalized career guidance, weekly calls with a data science expert, and a job guarantee.

 
AUmidhCommented:
From The Web page....

using System;
using System.Threading;

public class Test
{
    static void Main()
    {
        ThreadStart job = new ThreadStart(ThreadJob);
        Thread thread = new Thread(job);
        thread.Start();
       
        for (int i=0; i < 5; i++)
        {
            Console.WriteLine ("Main thread: {0}", i);
            Thread.Sleep(1000);
        }
    }
   
    static void ThreadJob()
    {
        DataTable dt = SmoApplication.EnumAvailableSqlServers(false);
ListServers.DisplayMember = "name";
ListServers.ValueMember = "name";
ListServers.DataSource = dt.DefaultView;
    }
}

0
 
andy_eeAuthor Commented:
@gauthampj

It compiles and runs but the combo box never gets populated
0
 
Gautham JanardhanCommented:

System.Threading.Thread.Start
(
new ThreadStart
(delegate
{
DataTable dt = SmoApplication.EnumAvailableSqlServers(false);
ListServers.Invoke(new ThreadStart(delegate
{
ListServers.DisplayMember = "name";
ListServers.ValueMember = "name";
ListServers.DataSource = dt.DefaultView;
}),null);
}
));

Open in new window

0
 
andy_eeAuthor Commented:
I get the following error:

An object reference is required for the non-static field, method, or property 'System.Threading.Thread.Start(object)'
public partial class FormSQLServerList : Form
{
    public FormSQLServerList()
    {
        InitializeComponent();
    }
    private void FormSQLServerList_Load(object sender, EventArgs e)
    {
        System.Threading.Thread.Start
        (
        new ThreadStart
        (delegate
        {
            DataTable dt = SmoApplication.EnumAvailableSqlServers(false);
            ListAvailableSQLServers.Invoke(new ThreadStart(delegate
            {
                ListAvailableSQLServers.DisplayMember = "name";
                ListAvailableSQLServers.ValueMember = "name";
                ListAvailableSQLServers.DataSource = dt.DefaultView;
            }), null);
        }
        ));
    }
}

Open in new window

0
 
andy_eeAuthor Commented:
Excellent!  Thanks for all the help!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.