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?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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
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
Protecting & Securing Your Critical Data

Considering 93 percent of companies file for bankruptcy within 12 months of a disaster that blocked access to their data for 10 days or more, planning for the worst is just smart business. Learn how Acronis Backup integrates security at every stage

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
Gautham JanardhanCommented:

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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
andy_eeAuthor Commented:
Excellent!  Thanks for all the help!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.