Solved

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

Posted on 2009-04-09
8
340 Views
Last Modified: 2013-12-17
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

0
Comment
Question by:andy_ee
  • 3
  • 3
  • 2
8 Comments
 
LVL 7

Expert Comment

by:AUmidh
ID: 24107185
Here is a sample of threading
http://www.yoda.arachsys.com/csharp/threads/
0
 
LVL 29

Expert Comment

by:Gautham Janardhan
ID: 24107186

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
 
LVL 7

Expert Comment

by:AUmidh
ID: 24107221
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
Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

 

Author Comment

by:andy_ee
ID: 24113170
@gauthampj

It compiles and runs but the combo box never gets populated
0
 
LVL 29

Expert Comment

by:Gautham Janardhan
ID: 24113419

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
 

Author Comment

by:andy_ee
ID: 24115963
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
 
LVL 29

Accepted Solution

by:
Gautham Janardhan earned 500 total points
ID: 24117035

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
 

Author Closing Comment

by:andy_ee
ID: 31568524
Excellent!  Thanks for all the help!
0

Featured Post

Backup Solution for AWS

Read about how CloudBerry Backup fully integrates your backups with Amazon S3 and Amazon Glacier to provide military-grade encryption and dramatically cut storage costs on any platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
Via a live example, show how to shrink a transaction log file down to a reasonable size.

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question