欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

.net core 同步锁/异步锁

程序员文章站 2022-03-01 14:58:08
...

Lock是常用的同步锁,但是我们无法在Lock的内部实现异步调用,比如我们无法使用await。

如果在Lock中使用异步,则会报错

.net core 同步锁/异步锁

以下就是.net core中,同步锁/异步锁的用法

一、同步锁


        private static readonly object _lock = new object();

        ///同步锁
        public void TestLock()
        {
            lock (_lock)
               {
                //需要处理的业务
                Console.Write("输出内容");
                }
        }

二、异步锁



        private readonly AsyncLock _mutex = new AsyncLock();

        ///异步锁
        public async Task<bool>  TestAsyncLock()
        {
                using ( await _mutex.LockAsync())
                //锁保护区域
                {

                    var result = await _preSaleLawyerService.GetCustomerInfoAsync(new GetCustomerInfoRequest() { CustomerId = request.CustomerId });

                }
        }