通常这种获取都会花费一点时间,为了不影响UI刷新,建议使用后台线程实现,由于很简单,直接上代码吧!
/// <summary> /// 后台前程启动 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { //获取SQL Server实例集合 e.Result = AvailableSqlServerInstances.ServerInstances; } /// <summary> /// 后台线程结束 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Result != null) { //cbServer为“服务器名”下拉列表 lock (cbServer) { string txt = cbServer.Text; this.cbServer.DataSource = e.Result; if (txt.Length > 0) { cbServer.Text = txt; cbServer.SelectionStart = txt.Length; } } } }
开发过程中比较常用,希望能对有需要的人有一点点帮助。