使用父TPL任务

时间:2017-12-01 14:12:48

标签: .net plugins task-parallel-library

我有一个基于插件的系统,使用.Net Task<> / TPL大量做并行工作流程。这些工作者是执行各种类型任务的插件,它们构建在主处理应用程序之外,编译为DLL并放入插件目录。

worker插件将使用Trace消息输出他们正在做的事情。我很乐意使用仅在父应用程序中已知的其他上下文信息来补充这些跟踪消息。这也意味着我需要以某种方式弄清楚跟踪消息来自哪个上下文(哪个任务<>它来自)

具体用例:

  • 父应用程序从队列中选择要完成的“工作”。
  • 应用程序找到适当的worker-plugin来执行所请求的工作类型
  • 父级创建新任务<>要使插件在其中工作,请建立与此工作任务关联的WorkID并启动该过程
  • 当插件使用Trace.WriteLine()之类的东西时,我希望该消息补充使用从主应用程序建立的WorkID(插件一无所知)

我知道我可以将日志记录实现传递给插件,但之后我必须重新编写所有我期望的插件,并使用该日志记录实现。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

根据@barakcaf的建议,我查看了解决了我的问题的server_name domain.com www.domain.com;

示例:

CallContext