请教大家一个多线程问题!批量登陆!

jiebao521 2011-09-07 01:13:18
我就是想用10个或者更多个线程同时去模拟登陆网站和采集数据, 每个线程执行完了, 我还要在界面的控件上(datagrid)更新已经完成,怎么做, 怎么写代码, 我就会单个的。。我找到一些多线程的代码。但是没有 在每个线程执行完之后怎么去 更新软件的界面。(就想知道这个问题,怎么处理 每个执行完后的 界面处理)

因为多个的可以增加我的采集速度。但是我不知道弄。在这里先谢谢大家了。 贴上源码吧。或者给个小demo给我。


               //互斥量 
static Mutex mx = new Mutex();
//用于存储资源
static ArrayList list = new ArrayList();

//定义一个变量,标识线程索引
static int indexOfThread = 0;

//定义一个变量,用于标识当前线程的数量
static int countOfThread = 0;

static void Main(string[] args)
{
//ArrayList中存储100个数,相当于一百个资源
for (int i = 0; i < 100; i++)
{
list.Add(i);
}

//先启动10个线程
for (int i = 0; i < 10; i++)
{
mx.WaitOne();
int ii = Convert.ToInt32(list[0]);
list.RemoveAt(0);
Thread thread = new Thread(new ParameterizedThreadStart(ThreadProc));
thread.Name = "Thread " + indexOfThread++.ToString();
thread.Start(ii);
//当前的线程数目增1
countOfThread++;
Debug.WriteLine(thread.Name + "启动,当前总的线程数为: " + countOfThread);
mx.ReleaseMutex();
}
Console.ReadLine();

}
public static void ThreadProc(object i)
{
Debug.WriteLine(Thread.CurrentThread.Name + " : " + i.ToString());
Thread.Sleep(1000);
CallBack();
}

public static void CallBack()
{
mx.WaitOne();

//当前线程数自减1
countOfThread--;

//如果当前还有资源待下载,并且当前的线程的数量小于10
if (list.Count > 0 && countOfThread < 10)
{
int ii = Convert.ToInt32(list[0]);
list.RemoveAt(0);
Thread thread = new Thread(new ParameterizedThreadStart(ThreadProc));
thread.Name = "Thread " + indexOfThread++.ToString();
thread.Start(ii);
//当前的线程数目增1
countOfThread++;
Debug.WriteLine(thread.Name + "启动,当前总的线程数为: " + countOfThread);
}
mx.ReleaseMutex();
}

...全文
139 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilyzsq 2011-09-22
  • 打赏
  • 举报
回复
学习学习 观摩之中…………
ilyzsq 2011-09-22
  • 打赏
  • 举报
回复
学习....
jiebao521 2011-09-07
  • 打赏
  • 举报
回复
非常感谢,可以实现我说的吗?
风骑士之怒 2011-09-07
  • 打赏
  • 举报
回复
看下思路,替换成模拟登录代码

http://www.cnblogs.com/nnhy/archive/2007/08/18/860656.html
jiebao521 2011-09-07
  • 打赏
  • 举报
回复
请大家帮帮我。。

110,533

社区成员

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

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

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