diff --git a/Directory.Packages.props b/Directory.Packages.props
index 5d84b758547..6991b372b70 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -166,6 +166,7 @@
+
diff --git a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj
index edb61d6a21c..b1605bddd29 100644
--- a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj
+++ b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj
@@ -33,6 +33,9 @@
+
+
+
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Threading/SemaphoreSlimExtensions.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Threading/SemaphoreSlimExtensions.cs
index 51066da8a58..57151c24a00 100644
--- a/framework/src/Volo.Abp.Core/Volo/Abp/Threading/SemaphoreSlimExtensions.cs
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/Threading/SemaphoreSlimExtensions.cs
@@ -1,4 +1,5 @@
using System;
+using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
@@ -6,19 +7,22 @@ namespace Volo.Abp.Threading;
public static class SemaphoreSlimExtensions
{
- public async static Task LockAsync(this SemaphoreSlim semaphoreSlim)
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public async static ValueTask LockAsync(this SemaphoreSlim semaphoreSlim)
{
await semaphoreSlim.WaitAsync();
return GetDispose(semaphoreSlim);
}
- public async static Task LockAsync(this SemaphoreSlim semaphoreSlim, CancellationToken cancellationToken)
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public async static ValueTask LockAsync(this SemaphoreSlim semaphoreSlim, CancellationToken cancellationToken)
{
await semaphoreSlim.WaitAsync(cancellationToken);
return GetDispose(semaphoreSlim);
}
- public async static Task LockAsync(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout)
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public async static ValueTask LockAsync(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout)
{
if (await semaphoreSlim.WaitAsync(millisecondsTimeout))
{
@@ -28,7 +32,8 @@ public async static Task LockAsync(this SemaphoreSlim semaphoreSlim
throw new TimeoutException();
}
- public async static Task LockAsync(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout, CancellationToken cancellationToken)
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public async static ValueTask LockAsync(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout, CancellationToken cancellationToken)
{
if (await semaphoreSlim.WaitAsync(millisecondsTimeout, cancellationToken))
{
@@ -38,7 +43,8 @@ public async static Task LockAsync(this SemaphoreSlim semaphoreSlim
throw new TimeoutException();
}
- public async static Task LockAsync(this SemaphoreSlim semaphoreSlim, TimeSpan timeout)
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public async static ValueTask LockAsync(this SemaphoreSlim semaphoreSlim, TimeSpan timeout)
{
if (await semaphoreSlim.WaitAsync(timeout))
{
@@ -48,7 +54,8 @@ public async static Task LockAsync(this SemaphoreSlim semaphoreSlim
throw new TimeoutException();
}
- public async static Task LockAsync(this SemaphoreSlim semaphoreSlim, TimeSpan timeout, CancellationToken cancellationToken)
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public async static ValueTask LockAsync(this SemaphoreSlim semaphoreSlim, TimeSpan timeout, CancellationToken cancellationToken)
{
if (await semaphoreSlim.WaitAsync(timeout, cancellationToken))
{
@@ -58,18 +65,21 @@ public async static Task LockAsync(this SemaphoreSlim semaphoreSlim
throw new TimeoutException();
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IDisposable Lock(this SemaphoreSlim semaphoreSlim)
{
semaphoreSlim.Wait();
return GetDispose(semaphoreSlim);
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IDisposable Lock(this SemaphoreSlim semaphoreSlim, CancellationToken cancellationToken)
{
semaphoreSlim.Wait(cancellationToken);
return GetDispose(semaphoreSlim);
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IDisposable Lock(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout)
{
if (semaphoreSlim.Wait(millisecondsTimeout))
@@ -80,6 +90,7 @@ public static IDisposable Lock(this SemaphoreSlim semaphoreSlim, int millisecond
throw new TimeoutException();
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IDisposable Lock(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout, CancellationToken cancellationToken)
{
if (semaphoreSlim.Wait(millisecondsTimeout, cancellationToken))
@@ -90,6 +101,7 @@ public static IDisposable Lock(this SemaphoreSlim semaphoreSlim, int millisecond
throw new TimeoutException();
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IDisposable Lock(this SemaphoreSlim semaphoreSlim, TimeSpan timeout)
{
if (semaphoreSlim.Wait(timeout))
@@ -100,6 +112,7 @@ public static IDisposable Lock(this SemaphoreSlim semaphoreSlim, TimeSpan timeou
throw new TimeoutException();
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IDisposable Lock(this SemaphoreSlim semaphoreSlim, TimeSpan timeout, CancellationToken cancellationToken)
{
if (semaphoreSlim.Wait(timeout, cancellationToken))
@@ -110,6 +123,7 @@ public static IDisposable Lock(this SemaphoreSlim semaphoreSlim, TimeSpan timeou
throw new TimeoutException();
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
private static IDisposable GetDispose(this SemaphoreSlim semaphoreSlim)
{
return new DisposeAction(static (semaphoreSlim) =>