Skip to content

改进建议: 可以使用CAS操作去除AsyncManualResetEvent中的lock操作 #76

@ZjzMisaka

Description

@ZjzMisaka

建议改进的写法:

  1. 删除lock语句并将Reset内部的逻辑改为CAS替换TaskCompletionSource实例
  2. TaskCompletionSource<bool> _source添加volatile关键字

可以参考 QuikSharp实现的AsyncManualResetEvent, 这比较通用的做法.
上面代码文件中提到的MSDN博客链接由于MSDN的退役而失效了, 但这里有归档.

改写后经过测试, 项目中当前存在的单元测试都可通过.
我会提交一个PR, 如果觉得可以的话, 是否可以合并一下, 谢谢.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions