这种情况怎么用多线程?

yylooker2008 2011-01-18 08:51:46
程序要做一个500次的循环,直到循环中查询到想要的信息,或者次数到了结束。
现在的问题是会非常卡,如果一直没有信息就会一直卡。

想用多线程,但搞不懂应该怎么弄、?
让子线程去做这个循环,lock一个code值,然后主线程怎么办呢?再做个循环去一直看这个code值吗????那不还是卡么
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2011-01-18
  • 打赏
  • 举报
回复
委托
BackgroundWorker 类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用 BackgroundWorker 类方便地解决问题。
private void button1_Click(object sender, EventArgs e)
{
Thread th = new Thread(aa);
th.Start();
}

delegate void somedle();
private void aa()
{
if (this.InvokeRequired)
{
somedle sd = new somedle(aa);
this.Invoke(sd);
return;
}
ShowChar('');
}
public void ShowChar(char ch)
{
lock (this)
{

}
绿色夹克衫 2011-01-18
  • 打赏
  • 举报
回复
一个后台线程就可以,每次执行完了休息1秒,成功了给主线程发个消息,Invoke一下也行。
thisiscandy 2011-01-18
  • 打赏
  • 举报
回复
现在的问题是会非常卡,如果一直没有信息就会一直卡。?
那就加一个进度条吧 友善用户体验

110,538

社区成员

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

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

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