我正在尝试找到一种方法来跟踪异步任务的执行流程,以便于理解与任务相关的初始流程。主要是用于日志记录、调试和保留特定执行流程的堆栈信息。
例如:如果我有一个服务器,有多个来自不同IP的客户端并且服务器需要为每个客户端执行涉及多个异步操作的工作流程;使用
我还没有想出一种方式来包装这些任务,使得在日志中记录每个任务的初始描述。例如,如果我为一个描述为“处理10.0.3.4客户端”的动作启动了一个新的任务流程,则希望能够将此描述添加到该流程中创建的任何任务的每个日志项中。
当仅使用线程时很容易,因为你有线程静态变量。但对于任务而言,这是不可能的...我甚至尝试创建自己的任务调度程序来包装使用它的任何任务(即使使用
有什么想法或建议可以实现这个需求吗?
例如:如果我有一个服务器,有多个来自不同IP的客户端并且服务器需要为每个客户端执行涉及多个异步操作的工作流程;使用
async/await
机制时,记录这样的流程是困难的。我还没有想出一种方式来包装这些任务,使得在日志中记录每个任务的初始描述。例如,如果我为一个描述为“处理10.0.3.4客户端”的动作启动了一个新的任务流程,则希望能够将此描述添加到该流程中创建的任何任务的每个日志项中。
当仅使用线程时很容易,因为你有线程静态变量。但对于任务而言,这是不可能的...我甚至尝试创建自己的任务调度程序来包装使用它的任何任务(即使使用
async/await
方法),但遇到了瓶颈,因为任务调度程序基础有时会使用新线程(即使没有隐含请求使用新线程)- 方法TryExecuteTaskInline
有时会在新线程中运行。有什么想法或建议可以实现这个需求吗?