Wap*_*pac 2 c# logging multithreading async-await
我有一个带有异步处理的多线程应用程序(它本身使用许多线程)。如果没有异步,很容易记录并跟踪执行流程,因为只需将当前线程标识符放入日志中,您就可以看到哪个日志行由哪个线程执行。
如何在异步环境中实现类似的事情?通常在调用 await 时,以下代码会分配给另一个线程(我对此没有意见,我相信线程池管理器会有效地为我完成这些分配)。问题是,突然间我没有执行流程的这个固定线程 ID,很难将这两个部分放在一起。
是否有任何任务标识符会保留在整个代码中?我的意思是假设一个方法中有 5 次等待调用。使用线程 ID,我可以在日志中看到多达 6 个不同的 ID。我想要一件事,我更喜欢它已经存在(我知道我可以创建一个对象并将它一遍又一遍地传递给我的日志函数,但如果已经有了东西,那就更好了)。
Task.Id 或 Task.CurrentId 是否适合此目的,还是其他什么?
| 归档时间: |
|
| 查看次数: |
1274 次 |
| 最近记录: |