ThreadLocalManager.cs 774 B

123456789101112131415161718192021222324252627282930
  1. namespace AmrControl.Common
  2. {
  3. public class ThreadLocalManager
  4. {
  5. private static readonly AsyncLocal<ThreadLocalContext> _current = new();
  6. /// <summary>
  7. /// 设置上下文
  8. /// </summary>
  9. /// <param name="context"></param>
  10. public static void Set(ThreadLocalContext context)
  11. {
  12. _current.Value = context;
  13. }
  14. /// <summary>
  15. /// 获取上下文内容
  16. /// </summary>
  17. /// <returns></returns>
  18. public static ThreadLocalContext Get()
  19. {
  20. return _current.Value;
  21. }
  22. /// <summary>
  23. /// 移除上下文
  24. /// </summary>
  25. public static void Remove()
  26. {
  27. _current.Value = null;
  28. }
  29. }
  30. }