我的查询是我有一个方法应该以特定的时间间隔调用,在该时间间隔内具有特定数量的线程,然后在下一次调用后保持空闲状态。
为了更清楚,我在下面提供了一个示例代码:
namespace ThreadTest
{
public partial class Form1 : Form
{
public Form1()
{
Initialize Components();
}
}
public void ExtractDatafromWebPage()
{
//Code for extracting data from web page using HTTPWebRequest and HTTPWebResponse class
}
private void btn1_Click(object sender, EventArgs e)
{
// On clicking the button the ExtractDatafromWebPage() method should be called with 5 threads at every 10 seconds.
}
}
现在我的要求是应该在每10秒后调用一次方法,并且每次只有5个线程应该与此方法相关联,并且应该保持空闲直到接下来的10秒。这个过程将继续无限延续。
答案 0 :(得分:0)
如果我正确理解你的问题,你可以做类似如下所示的事情(因为我不确定你的意思是什么:'只有5个线程应该与这个方法相关')
如果你的意思是只有五个线程应该输入方法,那么只需要一个计数为'5'的信号量。
传递你需要产生的线程数,时间段等。
private void btn1_Click(object sender, EventArgs e)
{
// On clicking the button the ExtractDatafromWebPage() method should be called with 5 threads at every 10 seconds.
Timer t = new System.Threading.Timer(
() =>
{
for (int i = 1; i <= 5; i++)
{
//you can use thread pool thread
new Thread(() => this.ExtractDatafromWebPage()).Start();
}
}, null, 0, 10 * 1000);
}