C#使用semaphore來管理異步下載請求的方法
更新時間:2015年06月05日 15:56:19 作者:不吃皮蛋
這篇文章主要介紹了C#使用semaphore來管理異步下載請求的方法,涉及C#使用semaphore實現(xiàn)多線程管理的技巧,需要的朋友可以參考下
本文實例講述了C#使用semaphore來管理異步下載請求的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
var semaphor = new Semaphore(50, 50);
// We allow at most 50 threads for crawling
var resultPins = new List<Pin>();
// Results stored here
foreach (var pin in new HashSet<string>(pinIdList))
{
semaphor.WaitOne();
Console.Write(">");
var pinClient = new WebClient();
pinClient.DownloadStringCompleted += (sender, ex) =>
{
var html = ex.Result.Replace("\n", "");
pinClient.Dispose();
lock (pinIdList)
{
// do some post-processing and write back the results
}
Console.Write("<");
semaphor.Release();
};
pinClient.DownloadStringAsync(new Uri(string.Format("http://pinterest.com/pin/{0}/", pin)));
}
for (int i = 0; i < 50; i++) semaphor.WaitOne();
// Wait until the last thread ends.
semaphor.Dispose();
Console.WriteLine();
希望本文所述對大家的C#程序設(shè)計有所幫助。
相關(guān)文章
C#實現(xiàn)數(shù)據(jù)包加密與解密實例詳解
這篇文章主要介紹了C#實現(xiàn)數(shù)據(jù)包加密與解密的方法,是一項很實用的技能,需要的朋友可以參考下2014-07-07
C#使用post發(fā)送和接收數(shù)據(jù)的方法
這篇文章主要介紹了C#使用post發(fā)送和接收數(shù)據(jù)的方法,涉及C#使用post收發(fā)數(shù)據(jù)的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04
winform壁紙工具為圖片添加當(dāng)前月的日歷信息
使用用winform做了一個設(shè)置壁紙小工具,為圖片添加當(dāng)月的日歷并設(shè)為壁紙,可以手動/定時設(shè)置壁紙,最主要的特點是在圖片上生成當(dāng)前月的日歷信息,感興趣的你可以參考下2013-03-03
C#通過PInvoke調(diào)用c++函數(shù)的備忘錄的實例詳解
這篇文章主要介紹了C#通過PInvoke調(diào)用c++函數(shù)的備忘錄的實例以及相關(guān)知識點內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-08-08

