本文整理汇总了C#中WorkClass.getTotalComments方法的典型用法代码示例。如果您正苦于以下问题:C# WorkClass.getTotalComments方法的具体用法?C# WorkClass.getTotalComments怎么用?C# WorkClass.getTotalComments使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorkClass
的用法示例。
在下文中一共展示了WorkClass.getTotalComments方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: weiboCnGrabComments
// 测试weibo.cn,抓取所有评论,包含目标微博上的所有评论,以及目标在所有评论者上的评论
static void weiboCnGrabComments(List<CookieContainer> ccList, string uid, int startPage, int endPage)
{
// http://weibo.cn/u/uid?page=N
string ulogin = "http://weibo.cn/u/" + uid + "?page=";
// 获取博主自身的所有评论,以及所有在评论中出现过的好友数据
WorkClass maincs = new WorkClass();
maincs.cc0 = ccList[0];
maincs.cc1 = ccList[1];
maincs.startPage = startPage;
maincs.endPage = endPage;
maincs.threadName = "启动线程";
maincs.selfuid = uid;
WeiboData weiboData = maincs.getTotalComments(ulogin, uid, null);
Console.WriteLine("1. 搜索到博主评论条数:" + weiboData.comments.Count + ", 评论过的好友个数:" + weiboData.friends.Count);
// 计算每个线程能分到的好友数量
int friendsCount = weiboData.friends.Count;
int threadCount = ccList.Count / 2;
int n = friendsCount / threadCount;
bool haveExt = (friendsCount % (ccList.Count / 2)) > 0; // 检查最后一个线程是否有额外的好友数据需要处理
List<WeiboUser> friends = weiboData.friends.Values.ToList();
List<Thread> threads = new List<Thread>();
List<WorkClass> works = new List<WorkClass>();
// 启动线程,开始抓取好友中的评论
for (int i = 0; i < threadCount; i++)
{
WorkClass wc = new WorkClass();
wc.cc0 = ccList[2 * i];
wc.cc1 = ccList[2 * i + 1];
wc.threadName = "线程" + i;
wc.startPage = startPage;
wc.endPage = endPage;
wc.selfuid = uid;
int start = n * i;
int end = (n == (threadCount - 1)) ? friendsCount : n * (i + 1);
for (int m = start; m < end; m++)
{
wc.friends.Add(friends[m]);
}
Thread t = new Thread(new ParameterizedThreadStart(wc.Run));
t.Name = "线程" + i;
t.Start();
works.Add(wc);
threads.Add(t);
}
// 等待线程结束
while (true)
{
bool end = true;
for (var i = 0; i < threads.Count; i++)
{
if (threads[i].ThreadState == ThreadState.Running)
{
end = false;
continue;
}
if (!works[i].end)
{
weiboData.comments.AddRange(works[i].comments);
works[i].end = true;
}
}
if (end)
{
break;
}
}
Console.WriteLine("搜索完成,共 " + weiboData.comments.Count + " 评论.");
var s = "";
foreach (var m in weiboData.comments)
{
s += m.toString() + "\n";
}
File.WriteAllText(uid + "-comment-" + startPage + "-" + endPage + ".txt", s);
}