我有一个问题。我有一个支持多线程的方法Processrequest()
,每个线程都可以创建一个Requestclass
的类实例并自行工作。
例如,
public class Requestclass : producerclass
{
public override string Generaterequest();
}
public class producerclass
{
public virtual string Generaterequest();
Public void Processrequest(){
string request = Generaterequest();
//HttpWebRequest here
// process the request here
}
}
对于Requestclass的一个实例,它工作正常。但我想知道如何在这种情况下继续
(编辑:如果我有多个Requestclass,如何在Processrequest()方法中创建实例。是否将维护在每个线程中创建的实例?)
答案 0 :(得分:0)
如果我理解方案是正确的,你想创建多个RequestClasses,每个RequestClasses生成另一个并发运行的请求? 使用TPL为每个请求启动一个新任务,如:
public void Processrequest(){
Task.Factory.StartNew(() => {
string request = Generaterequest();
//access and process request here
});
}
您还可以添加延续任务来处理每个已启动Task
的结果。