包含函数委托的值?

时间:2013-04-25 14:16:54

标签: c#

这不是我正在做的事情,但它足够接近。我有两个代表指向同一个函数。

var foo=new Func<string, string, dynamic, string>(f);
var bar=new Func<string, string, dynamic, string>(f);

foo由一组线程(不仅仅是一个线程)调用。 bar由不同的线程组调用。

函数需要知道的一个参数是从哪个线程调用它。

我可以在调用函数时让每个线程告诉它它的组名(线程知道它们属于哪个组),但有没有办法将线程组名称(字符串)传递给函数本身宣布foo和bar?

因此,一旦线程调用foo,函数f将知道从第一组调用它,并且每次线程调用bar时,函数f将知道它是从第二组调用的吗?

1 个答案:

答案 0 :(得分:2)

你的意思是这样的吗?

var foo = new Func<string, dynamic, string>((s,d) => f("123", s, d));
var bar = new Func<string, dynamic, string>((s,d) => f("456", s, d));

这样,常数在代表声明期间只使用一次。