为多个线程以相同的方法创建类实例

时间:2015-02-03 12:06:24

标签: c# multithreading

我有一个问题。我有一个支持多线程的方法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的一个实例,它工作正常。但我想知道如何在这种情况下继续

  1. 我有多个请求类
  2. 这些请求类名称将是动态的。
  3. 由于它支持多线程,即每个线程应同时处理一个请求类。
  4. (编辑:如果我有多个Requestclass,如何在Processrequest()方法中创建实例。是否将维护在每个线程中创建的实例?)

1 个答案:

答案 0 :(得分:0)

如果我理解方案是正确的,你想创建多个RequestClasses,每个RequestClasses生成另一个并发运行的请求? 使用TPL为每个请求启动一个新任务,如:

public void Processrequest(){
    Task.Factory.StartNew(() => {
        string request = Generaterequest();
        //access and process request here
    });
}

您还可以添加延续任务来处理每个已启动Task的结果。