From 4fad1f8c0c0fc7ed313c2832ca89cd24fa276569 Mon Sep 17 00:00:00 2001 From: ZaneYork Date: Tue, 2 Jun 2020 18:53:09 +0800 Subject: 1.Multithread rewrite --- src/SMAPI/Framework/ModLoading/Framework/RecursiveRewriter.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/SMAPI/Framework/ModLoading/Framework/RecursiveRewriter.cs b/src/SMAPI/Framework/ModLoading/Framework/RecursiveRewriter.cs index c774c038..aafdefc6 100644 --- a/src/SMAPI/Framework/ModLoading/Framework/RecursiveRewriter.cs +++ b/src/SMAPI/Framework/ModLoading/Framework/RecursiveRewriter.cs @@ -57,12 +57,11 @@ namespace StardewModdingAPI.Framework.ModLoading.Framework /// Returns whether the module was modified. public bool RewriteModule() { - bool anyRewritten = false; - - foreach (TypeDefinition type in this.Module.GetTypes()) + return this.Module.GetTypes().AsParallel().WithExecutionMode(ParallelExecutionMode.ForceParallelism).Select(type => { + bool anyRewritten = false; if (type.BaseType == null) - continue; // special type like + return false; // special type like anyRewritten |= this.RewriteCustomAttributes(type.CustomAttributes); anyRewritten |= this.RewriteGenericParameters(type.GenericParameters); @@ -108,9 +107,9 @@ namespace StardewModdingAPI.Framework.ModLoading.Framework } } } - } - return anyRewritten; + return anyRewritten; + }).Max(); } -- cgit