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/DirtyWordConfig.cs |   53 ++++++++++++++++++++++++++++++-----------------------
 1 files changed, 30 insertions(+), 23 deletions(-)

diff --git a/Main/Config/PartialConfigs/DirtyWordConfig.cs b/Main/Config/PartialConfigs/DirtyWordConfig.cs
index d8e0908..51c6225 100644
--- a/Main/Config/PartialConfigs/DirtyWordConfig.cs
+++ b/Main/Config/PartialConfigs/DirtyWordConfig.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 DirtyWordConfig : ConfigBase<int, DirtyWordConfig>
     {
@@ -194,31 +194,38 @@
             }
 
             dirtyWordInited = true;
+            DirtyWordInitAsync().Forget();
+        }
 
-            ThreadPool.QueueUserWorkItem((object aaa) =>
+        private static async UniTaskVoid DirtyWordInitAsync()
+        {
+            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