From 1ab047b5fdd933c38ba0519ec2e83a44512ea8d7 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 26 三月 2026 17:46:11 +0800
Subject: [PATCH] webgl代码合并 1

---
 Main/Config/PartialConfigs/DirtyNameConfig.cs |   53 ++++++++++++++++++++++++++++++-----------------------
 1 files changed, 30 insertions(+), 23 deletions(-)

diff --git a/Main/Config/PartialConfigs/DirtyNameConfig.cs b/Main/Config/PartialConfigs/DirtyNameConfig.cs
index 361927f..97cc4b9 100644
--- a/Main/Config/PartialConfigs/DirtyNameConfig.cs
+++ b/Main/Config/PartialConfigs/DirtyNameConfig.cs
@@ -1,8 +1,8 @@
 using System;
 using System.Collections.Generic;
 using System.Text.RegularExpressions;
+using Cysharp.Threading.Tasks;
 using UnityEngine;
-using System.Threading;
 
 public partial class DirtyNameConfig : ConfigBase<int, DirtyNameConfig>
 {
@@ -144,31 +144,38 @@
         }
 
         dirtyNameInited = true;
+        DirtyNameInitAsync().Forget();
+    }
 
-        ThreadPool.QueueUserWorkItem((object aaa) =>
+    private static async UniTaskVoid DirtyNameInitAsync()
+    {
+        memoryList.Sort((string x, string y) =>
         {
-            memoryList.Sort((string x, string y) =>
-            {
-                return x.CompareTo(y);
-            });
-            for (int i = memoryList.Count - 1; i > 0; i--)
-            {
-                if (memoryList[i].ToString() == memoryList[i - 1].ToString())
-                {
-                    memoryList.RemoveAt(i);
-                }
-            }
-            foreach (string word in memoryList)
-            {
-                WordGroup group = DIRTYWORLD[(int)word[0]];
-                if (group == null)
-                {
-                    group = new WordGroup();
-                    DIRTYWORLD[(int)word[0]] = group;
-                }
-                group.Add(word.Substring(1));
-            }
+            return x.CompareTo(y);
         });
+        await UniTask.Yield();
+        for (int i = memoryList.Count - 1; i > 0; i--)
+        {
+            if (memoryList[i].ToString() == memoryList[i - 1].ToString())
+            {
+                memoryList.RemoveAt(i);
+            }
+        }
+        await UniTask.Yield();
+        int count = 0;
+        foreach (string word in memoryList)
+        {
+            WordGroup group = DIRTYWORLD[(int)word[0]];
+            if (group == null)
+            {
+                group = new WordGroup();
+                DIRTYWORLD[(int)word[0]] = group;
+            }
+            group.Add(word.Substring(1));
+            count++;
+            if (count % 100 == 0)
+                await UniTask.Yield();
+        }
     }
 
     public static bool IsCHS(char character)

--
Gitblit v1.8.0