有什么办法拦截所有的 await 做切面操作吗?

2022-11-29 17:38:48 +08:00
 bthulu

比如, 类似 Serilog 那样, 可以在 await 后给日志添加一个当前线程 id, 在下一个 await 开始前清除此线程 id, 确保日志能正常记录当前线程 id, 同时又仅在线程切换时获取一次当前线程 id, 避免频繁调用.

1604 次点击
所在节点    .NET
3 条回复
hez2010
2022-11-30 00:46:03 +08:00
大概是不存在的,用 fody 或者写个 source generator 静态织入代码吧。
GiantHard
2022-11-30 10:14:46 +08:00
很好奇你的原始需求是什么
INCerry
2022-12-03 20:52:19 +08:00
直接用`Thread.CurrentThread.ManagedThreadId`就可以了,这就是个属性,调 100w 次也用不了 1 毫秒。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/898851

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX