C#主线程获取子线程值
private static void GetFirstPageInfo(string pagedata)
{
MatchCollection mc = Regex.Matches(pagedata, @everyArray[1]);//(.*?)
if (mc.Count > 0)
{
sonpagecount = mc.Count;
threads = new Thread[sonpagecount];
string[] pagestr = new string[8];
for (int i = 0; i < sonpagecount; i++) //遍历抓取到的信息,取出准确的数据
{
GetWebPage gw = new GetWebPage(pagestr);//实例化详细页面获取类
gw.getback += new GetWebPage.GetBackData(gw_getback);//为类定义方法委托
Thread th = new Thread(gw.ThreadPoolCallBack);//申明一个新线程
threads[i] = th;
th.Start();//开始新线程
th.Join();//主线程阻塞方法
}
}
}
///
/// 详细页面信息返回调用方法
///
///
static void gw_getback(string[] str)
{
GetSecondPageInfo(str);//对获取到的详细信息进一步处理
}
///
/// 详细子页面操作
///
///
private static void GetSecondPageInfo(string[] pagedata)
{
//对返回数据进行相关操作
}
///
/// 获取招标详细内容
///
class GetWebPage
{
public delegate void GetBackData(string[] str);//委托方法
public event GetBackData getback;//定义调用委托事件
public void ThreadPoolCallBack(Object threadContext)
{
GetPageContent(_pageurl);
}
///
/// 获取指定页面数据
///
/// 页面地址
private void GetPageContent(string url)
{
if (getback != null)
{
getback(result);//信息获取完后触法委托事件
}
}
}
{
MatchCollection mc = Regex.Matches(pagedata, @everyArray[1]);//(.*?)
if (mc.Count > 0)
{
sonpagecount = mc.Count;
threads = new Thread[sonpagecount];
string[] pagestr = new string[8];
for (int i = 0; i < sonpagecount; i++) //遍历抓取到的信息,取出准确的数据
{
GetWebPage gw = new GetWebPage(pagestr);//实例化详细页面获取类
gw.getback += new GetWebPage.GetBackData(gw_getback);//为类定义方法委托
Thread th = new Thread(gw.ThreadPoolCallBack);//申明一个新线程
threads[i] = th;
th.Start();//开始新线程
th.Join();//主线程阻塞方法
}
}
}
///
/// 详细页面信息返回调用方法
///
///
static void gw_getback(string[] str)
{
GetSecondPageInfo(str);//对获取到的详细信息进一步处理
}
///
/// 详细子页面操作
///
///
private static void GetSecondPageInfo(string[] pagedata)
{
//对返回数据进行相关操作
}
///
/// 获取招标详细内容
///
class GetWebPage
{
public delegate void GetBackData(string[] str);//委托方法
public event GetBackData getback;//定义调用委托事件
public void ThreadPoolCallBack(Object threadContext)
{
GetPageContent(_pageurl);
}
///
/// 获取指定页面数据
///
/// 页面地址
private void GetPageContent(string url)
{
if (getback != null)
{
getback(result);//信息获取完后触法委托事件
}
}
}