2013-04-25 60 views
0

这并不是我正在做的,但它足够接近。我有两位代表指向相同的功能。包含函数委托的值?

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

foo被一组线程(不只是一个线程)调用。栏由另一组线程调用。

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

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

因此,无论何时一个线程调用foo,函数f都会知道它从第一个组中调用,并且每次线程调用bar时,函数f都会知道它是从第二个组中调用的?

+0

我不确定我完全理解你的问题。如果你想要的只是打印线程名称,那么只需从f中调用Thread.CurrentThread.Name即可。 – svrcoder 2013-04-25 14:21:57

+0

对不起,我在发布后澄清了我的问题。它的线程“group”,它是在线程启动时传递给线程的任意字符串。 – xander 2013-04-25 14:33:03

回答

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)); 

这样,常量在代表的声明过程中只使用一次。

+0

哇!是的,这正是我正在寻找的东西,并没有期待它那么简单。非常感谢 :) – xander 2013-04-25 14:31:27