关于c# winform 异步调用数据,显示

LSP学逆向 2012-05-07 07:54:58

如图,1,2,3个区根据搜索框显示不同的搜索结果。
如下是搜索方法,和调用。

/// <summary>
/// 开始搜索
/// </summary>
private void startSearch()
{
string keys = "";
if (txtSearch.Text.Trim() == "")
{
MessageBox.Show("请输入要查询的内容", "提示");
return;
}
else
{
keys = HttpUtility.UrlEncode(txtSearch.Text, Encoding.GetEncoding("GB2312"));
}

dgv17173Data.AutoGenerateColumns = false;
dgvLocalData.AutoGenerateColumns = false;

//-------------本地数据-----------------//
string sql = string.Format("select Id,Q,A from Question where q like '%{0}%'", rePlaceSpecialSign(txtSearch.Text.Trim()));
int count;
dgvLocalData.DataSource = DBhelper.ExecuteReader(sql, out count);
lblCount.Text = count.ToString();
//--------------17173------------------//
string url = "http://moyu.db.17173.com/default.aspx?kval=" + keys;
List<Question> list = ParseIndexPage(url);
dgv17173Data.DataSource = list;
lbl17173Count.Text = list==null?"0":list.Count.ToString();
//百度题库
LoadBaidu(keys);
}



/// <summary>
/// 搜索按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSearch_Click(object sender, EventArgs e)
{
startSearch();
}



如上代码,写出来之后,123个区的结果是代码加载完后同时显示的。我想实现的就是,123个区按照顺序来显示结果。
今天了解了点多线程,可是不知道怎么在这个程序上操作。求高人指点简单容易的方法。如果是多线程,请指点思路。
...全文
402 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LSP学逆向 2012-05-08
  • 打赏
  • 举报
回复
问题已解决。使用后台线程,对控件访问用的Invoke。
谢谢楼上。结贴,给分!
wangsong145 2012-05-07
  • 打赏
  • 举报
回复
如果是多线程操作的话就没有办法控制顺序显示了,楼主可以定义三个线程来进行三个数据的加载,我在这里写一个例子给楼主做参考,要实现在线程里访问非该线程创建的控件有2种办法,1种是忽略非当前线程创建的控件,第二种创建委托来访问窗体UI,在此采用第一种方法:

private void button1_Click(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
Thread thread = new Thread(new ThreadStart(LoadLocalData));
thread.Start();
}

private void LoadLocalData()
{
//-------------本地数据-----------------//
string sql = string.Format("select Id,Q,A from Question where q like '%{0}%'", rePlaceSpecialSign(txtSearch.Text.Trim()));
int count;
dgvLocalData.DataSource = DBhelper.ExecuteReader(sql, out count);
lblCount.Text = count.ToString();
}

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧