【发布时间】:2011-10-05 18:15:34
【问题描述】:
我如何获得对我的代码在其中执行的任务的引用?
ISomeInterface impl = new SomeImplementation();
Task.Factory.StartNew(() => impl.MethodFromSomeInterface(), new MyState());
...
void MethodFromSomeInterface()
{
Task currentTask = Task.GetCurrentTask(); // No such method?
MyState state = (MyState) currentTask.AsyncState();
}
由于我在调用一些接口方法,我不能只将新创建的任务作为附加参数传递。
【问题讨论】:
-
你能把它作为参数传递给
SomeImplementation的构造函数吗?更好的 IMO,将MyState传递给构造函数,并且根本不需要MethodFromSomeInterface中的Task知识。 -
@Stephen Cleary,好像不能换界面了。
-
我不能改变接口,也不能改变实现。所以,我确实需要将
MyState实例与当前的Task关联起来。 -
此外,
MethodFromSomeInterface可以在不同的任务中同时调用。