我知道,当您通过调用BeginInvoke()或ThreadPool.QueueUserWorkItem(...)并行运行某些方法时,.NET框架会捕获包含代码访问安全性信息和其他内容的ExecutionContext对象。
我想要的是在ExecutionContext中包含我的并行方法所需的一些数据,但是在排队任务时也必须捕获这些数据。
问题在于,并非总是可以控制创建此并行任务的代码,因此在调用此外部代码之前,我必须找到一种存储此数据的方法。那就是为什么我想到了ExecutionContext类。
当我不总是控制在线程之间分配工作的代码时,有什么方法可以传递并行任务的某些状态。
最佳答案
找到了:
CallContext.LogicalSetData(...)
(documentation)
和
CallContext.LogicalGetData(...)
(documentation)