Files
2025-09-18 17:55:52 -04:00

41 lines
752 B
C#

using System;
using System.Threading;
namespace Roblox;
public static class RobloxThreadPool
{
private static int _QueueLength;
public static int QueueLength => _QueueLength;
public static void GetAvailableThreads(out int workerThreads, out int completionPortThreads)
{
ThreadPool.GetAvailableThreads(out workerThreads, out completionPortThreads);
}
public static bool QueueUserWorkItem(Action callback)
{
Interlocked.Increment(ref _QueueLength);
return ThreadPool.QueueUserWorkItem(delegate
{
try
{
callback();
}
catch (ThreadAbortException)
{
throw;
}
catch (Exception ex2)
{
ExceptionHandler.LogException(ex2);
}
finally
{
Interlocked.Decrement(ref _QueueLength);
}
});
}
}