TMusic/Tool/Handle/HandleCollector.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

// reference from https://referencesource.microsoft.com/#WindowsBase/Shared/MS/Win32/HandleCollector.cs,d0f99220d8e1b708

using System;
using System.Runtime.InteropServices;

namespace TMusic.Tool
{
    internal static class HandleCollector
    {
        private static HandleType[] HandleTypes;
        private static int HandleTypeCount;

        private static readonly object HandleMutex = new object();

        internal static IntPtr Add(IntPtr handle, int type)
        {
            HandleTypes[type - 1].Add();
            return handle;
        }

        [System.Security.SecuritySafeCritical]
        internal static SafeHandle Add(SafeHandle handle, int type)
        {
            HandleTypes[type - 1].Add();
            return handle;
        }

        internal static void Add(int type)
        {
            HandleTypes[type - 1].Add();
        }

        internal static int RegisterType(string typeName, int expense, int initialThreshold)
        {
            lock (HandleMutex)
            {
                if (HandleTypeCount == 0 || HandleTypeCount == HandleTypes.Length)
                {
                    HandleType[] newTypes = new HandleType[HandleTypeCount + 10];
                    if (HandleTypes != null)
                    {
                        Array.Copy(HandleTypes, 0, newTypes, 0, HandleTypeCount);
                    }
                    HandleTypes = newTypes;
                }

                HandleTypes[HandleTypeCount++] = new HandleType(expense, initialThreshold);
                return HandleTypeCount;
            }
        }

        internal static IntPtr Remove(IntPtr handle, int type)
        {
            HandleTypes[type - 1].Remove();
            return handle;
        }

        [System.Security.SecuritySafeCritical]
        internal static SafeHandle Remove(SafeHandle handle, int type)
        {
后面还有 72 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。