bthulu
V2EX  ›  .NET

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

  •  
  •   bthulu · Nov 29, 2022 · 2350 views
    This topic created in 1334 days ago, the information mentioned may be changed or developed.

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

    3 replies    2022-12-03 20:52:19 +08:00
    hez2010
        1
    hez2010  
       Nov 30, 2022 via Android
    大概是不存在的,用 fody 或者写个 source generator 静态织入代码吧。
    GiantHard
        2
    GiantHard  
       Nov 30, 2022
    很好奇你的原始需求是什么
    INCerry
        3
    INCerry  
       Dec 3, 2022
    直接用`Thread.CurrentThread.ManagedThreadId`就可以了,这就是个属性,调 100w 次也用不了 1 毫秒。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1233 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:34 · PVG 01:34 · LAX 10:34 · JFK 13:34
    ♥ Do have faith in what you're doing.