diff --git a/Plain Craft Launcher 2/Controls/MyImage.vb b/Plain Craft Launcher 2/Controls/MyImage.vb
index eaf72899d..1726374c8 100644
--- a/Plain Craft Launcher 2/Controls/MyImage.vb
+++ b/Plain Craft Launcher 2/Controls/MyImage.vb
@@ -120,7 +120,7 @@
ActualSource = TempPath
If (Date.Now - TempFile.LastWriteTime) < FileCacheExpiredTime Then Exit Sub '无需刷新缓存
End If
- RunInNewThread(
+ RunInNewTask(
Sub()
Dim TempDownloadingPath As String = Nothing
Try
diff --git a/Plain Craft Launcher 2/Controls/MyResizer.vb b/Plain Craft Launcher 2/Controls/MyResizer.vb
index e0c21eda5..54ad52521 100644
--- a/Plain Craft Launcher 2/Controls/MyResizer.vb
+++ b/Plain Craft Launcher 2/Controls/MyResizer.vb
@@ -189,7 +189,7 @@ Public Class MyResizer
If rightElements.ContainsKey(key) Then resizeRight = True
If upElements.ContainsKey(key) Then resizeUp = True
If downElements.ContainsKey(key) Then resizeDown = True
- RunInNewThread(AddressOf updateSizeLoop, "窗口大小调整检测")
+ RunInNewTask(AddressOf updateSizeLoop, "窗口大小调整检测")
End Sub
Private Sub updateSizeLoop()
diff --git a/Plain Craft Launcher 2/Controls/MyTextBox.vb b/Plain Craft Launcher 2/Controls/MyTextBox.vb
index ae3f0aee9..cedd31880 100644
--- a/Plain Craft Launcher 2/Controls/MyTextBox.vb
+++ b/Plain Craft Launcher 2/Controls/MyTextBox.vb
@@ -114,7 +114,7 @@
If IsLoaded AndAlso labWrong IsNot Nothing Then
ChangeValidateResult(IsValidated, True)
Else
- RunInNewThread(
+ RunInNewTask(
Sub()
Thread.Sleep(30)
RunInUi(Sub() ChangeValidateResult(IsValidated, False))
@@ -126,7 +126,7 @@
If IsLoaded AndAlso labWrong IsNot Nothing Then
labWrong.Text = ValidateResult
Else
- RunInNewThread(
+ RunInNewTask(
Sub()
Dim IsFinished As Boolean = False
Do Until IsFinished
diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb
index 60fe8988e..6f98797f2 100644
--- a/Plain Craft Launcher 2/FormMain.xaml.vb
+++ b/Plain Craft Launcher 2/FormMain.xaml.vb
@@ -158,7 +158,7 @@ Public Class FormMain
End If
Dim Content As String = "· " & Join(ContentList, vbCrLf & "· ")
'输出更新日志
- RunInNewThread(
+ RunInNewTask(
Sub()
If MyMsgBox(Content, "PCL 已更新至 " & VersionDisplayName, "确定", "完整更新日志") = 2 Then
OpenWebsite("https://afdian.com/a/LTCat?tab=feed")
@@ -296,7 +296,7 @@ Public Class FormMain
AniStart()
TimerMainStart()
'加载池
- RunInNewThread(
+ RunInNewTask(
Sub()
'EULA 提示
If Not Setup.Get("SystemEula") Then
@@ -315,7 +315,7 @@ Public Class FormMain
DlClientListMojangLoader.Start(1)
RunCountSub()
ServerLoader.Start(1)
- RunInNewThread(AddressOf TryClearTaskTemp, "TryClearTaskTemp", ThreadPriority.BelowNormal)
+ RunInNewTask(AddressOf TryClearTaskTemp, "TryClearTaskTemp", ThreadPriority.BelowNormal)
Catch ex As Exception
Log(ex, "初始化加载池运行失败", LogLevel.Feedback)
End Try
@@ -448,7 +448,7 @@ Public Class FormMain
If SendWarning AndAlso HasDownloadingTask() Then
If MyMsgBox("还有下载任务尚未完成,是否确定退出?", "提示", "确定", "取消") = 1 Then
'强行结束下载任务
- RunInNewThread(
+ RunInNewTask(
Sub()
Log("[System] 正在强行停止任务")
For Each Task As LoaderBase In LoaderTaskbar.ToList()
@@ -721,7 +721,7 @@ Public Class FormMain
End Try
End Sub
Private Sub FileDrag(FilePathList As IEnumerable(Of String))
- RunInNewThread(
+ RunInNewTask(
Sub()
Dim FilePath As String = FilePathList.First
Log("[System] 接受文件拖拽:" & FilePath & If(FilePathList.Any, $" 等 {FilePathList.Count} 个文件", ""), LogLevel.Developer)
diff --git a/Plain Craft Launcher 2/Modules/Base/ModAnimation.vb b/Plain Craft Launcher 2/Modules/Base/ModAnimation.vb
index 528f81ed7..4c02f1b8b 100644
--- a/Plain Craft Launcher 2/Modules/Base/ModAnimation.vb
+++ b/Plain Craft Launcher 2/Modules/Base/ModAnimation.vb
@@ -772,7 +772,7 @@ Public Module ModAnimation
AniFPSTimer = AniLastTick
AniRunning = True '标记动画执行开始
- RunInNewThread(Sub()
+ RunInNewTask(Sub()
Try
Log("[Animation] 动画线程开始")
Do While True
diff --git a/Plain Craft Launcher 2/Modules/Base/ModBase.vb b/Plain Craft Launcher 2/Modules/Base/ModBase.vb
index bdfa0c9e8..06687dbc8 100644
--- a/Plain Craft Launcher 2/Modules/Base/ModBase.vb
+++ b/Plain Craft Launcher 2/Modules/Base/ModBase.vb
@@ -5,6 +5,7 @@ Imports System.Runtime.CompilerServices
Imports System.Security.Cryptography
Imports System.Security.Principal
Imports System.Text.RegularExpressions
+Imports System.Threading.Tasks
Imports System.Xaml
Imports Newtonsoft.Json
@@ -2401,19 +2402,21 @@ NextElement:
'''
''' 在新的工作线程中执行代码。
'''
- Public Function RunInNewThread(Action As Action, Optional Name As String = Nothing, Optional Priority As ThreadPriority = ThreadPriority.Normal) As Thread
- Dim th As New Thread(
+ Public Function RunInNewTask(Action As Action, Optional Name As String = Nothing, Optional Priority As ThreadPriority = ThreadPriority.Normal, Optional Token As CancellationToken? = Nothing) As Task
+ If Token Is Nothing Then Token = CancellationToken.None
+ ' If Priority <> ThreadPriority.Normal Then Throw New Exception("Task 没有优先级,不准用")
+ Dim task As New Task(
Sub()
Try
Action()
Catch ex As ThreadInterruptedException
- Log(Name & ":线程已中止")
+ Log(Name & ":Task 已中止")
Catch ex As Exception
- Log(ex, Name & ":线程执行失败", LogLevel.Feedback)
+ Log(ex, Name & ":Task 执行失败", LogLevel.Feedback)
End Try
- End Sub) With {.Name = If(Name, "Runtime New Invoke " & GetUuid() & "#"), .Priority = Priority}
- th.Start()
- Return th
+ End Sub, Token)
+ task.Start()
+ Return task
End Function
'''
''' 确保在 UI 线程中执行代码。
@@ -2457,7 +2460,7 @@ NextElement:
'''
Public Sub RunInThread(Action As Action)
If RunInUi() Then
- RunInNewThread(Action, "Runtime Invoke " & GetUuid() & "#")
+ RunInNewTask(Action, "Runtime Invoke " & GetUuid() & "#")
Else
Action()
End If
@@ -2851,7 +2854,7 @@ Retry:
Private LogList As New StringBuilder
Private LogWritter As StreamWriter
Public Sub LogStart()
- RunInNewThread(
+ RunInNewTask(
Sub()
Dim IsInitSuccess As Boolean = True
Try
diff --git a/Plain Craft Launcher 2/Modules/Base/ModLoader.vb b/Plain Craft Launcher 2/Modules/Base/ModLoader.vb
index a408f143e..ae7597664 100644
--- a/Plain Craft Launcher 2/Modules/Base/ModLoader.vb
+++ b/Plain Craft Launcher 2/Modules/Base/ModLoader.vb
@@ -339,7 +339,7 @@
State = LoadState.Failed
End Try
End Sub) With {.Name = Name, .Priority = ThreadPriority}
- LastRunningThread.Start() '不能使用 RunInNewThread,否则在函数返回前线程就会运行完,导致误判 IsAborted
+ LastRunningThread.Start() '不能使用 RunInNewTask,否则在函数返回前线程就会运行完,导致误判 IsAborted
End Sub
Public Overrides Sub Abort()
If State <> LoadState.Loading Then Exit Sub
diff --git a/Plain Craft Launcher 2/Modules/Base/ModNet.vb b/Plain Craft Launcher 2/Modules/Base/ModNet.vb
index ba0e0193f..c8bdf1215 100644
--- a/Plain Craft Launcher 2/Modules/Base/ModNet.vb
+++ b/Plain Craft Launcher 2/Modules/Base/ModNet.vb
@@ -1595,7 +1595,7 @@ NextElement:
End SyncLock
State = LoadState.Loading
'开始执行
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
'输入检测
@@ -1641,14 +1641,14 @@ NextElement:
If FilesInThread.Count = FilesPerThread Then
Dim FilesToRun As New List(Of NetFile)
FilesToRun.AddRange(FilesInThread)
- RunInNewThread(Sub() StartCopy(FilesToRun, FoldersFinal), "NetTask FileCopy " & Uuid)
+ RunInNewTask(Sub() StartCopy(FilesToRun, FoldersFinal), "NetTask FileCopy " & Uuid)
FilesInThread.Clear()
End If
Next
If FilesInThread.Any Then
Dim FilesToRun As New List(Of NetFile)
FilesToRun.AddRange(FilesInThread)
- RunInNewThread(Sub() StartCopy(FilesToRun, FoldersFinal), "NetTask FileCopy " & Uuid)
+ RunInNewTask(Sub() StartCopy(FilesToRun, FoldersFinal), "NetTask FileCopy " & Uuid)
FilesInThread.Clear()
End If
Catch ex As Exception
@@ -1939,9 +1939,9 @@ Retry:
Log(ex, $"下载管理启动线程 {Id} 出错", LogLevel.Assert)
End Try
End Sub
- RunInNewThread(Sub() ThreadStarter(0), "NetManager ThreadStarter 0")
- RunInNewThread(Sub() ThreadStarter(1), "NetManager ThreadStarter 1")
- RunInNewThread(
+ RunInNewTask(Sub() ThreadStarter(0), "NetManager ThreadStarter 0")
+ RunInNewTask(Sub() ThreadStarter(1), "NetManager ThreadStarter 1")
+ RunInNewTask(
Sub()
Try
Dim LastLoopTime As Long
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb
index 59ad53e15..dedc80add 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModComp.vb
@@ -1,4 +1,6 @@
-Public Module ModComp
+Imports System.Threading.Tasks
+
+Public Module ModComp
Public Enum CompType
'''
@@ -959,9 +961,10 @@ Retry:
#Region "从 CurseForge 和 Modrinth 获取结果列表,存储于 RawResults"
- Dim CurseForgeThread As Thread = Nothing
- Dim ModrinthThread As Thread = Nothing
+ Dim CurseForgeThread As Task = Nothing
+ Dim ModrinthThread As Task = Nothing
Dim ResultsLock As New Object
+ Dim TokenSource As New CancellationTokenSource
Try
@@ -969,7 +972,7 @@ Retry:
Dim CurseForgeUrl As String = Task.Input.GetCurseForgeAddress()
Dim CurseForgeFailed As Boolean = False
If CurseForgeUrl IsNot Nothing Then
- CurseForgeThread = RunInNewThread(
+ CurseForgeThread = RunInNewTask(
Sub()
Try
'获取工程列表
@@ -993,14 +996,14 @@ Retry:
[Error] = ex
CurseForgeFailed = True
End Try
- End Sub, "CurseForge Project Request")
+ End Sub, "CurseForge Project Request", , TokenSource.Token)
End If
'启动 Modrinth 线程
Dim ModrinthUrl As String = Task.Input.GetModrinthAddress()
Dim ModrinthFailed As Boolean = False
If ModrinthUrl IsNot Nothing Then
- ModrinthThread = RunInNewThread(
+ ModrinthThread = RunInNewTask(
Sub()
Try
Log("[Comp] 开始从 Modrinth 获取工程列表:" & ModrinthUrl)
@@ -1026,13 +1029,13 @@ Retry:
[Error] = ex
ModrinthFailed = True
End Try
- End Sub, "Modrinth Project Request")
+ End Sub, "Modrinth Project Request", , TokenSource.Token)
End If
'等待线程结束
- If CurseForgeThread IsNot Nothing Then CurseForgeThread.Join()
+ If CurseForgeThread IsNot Nothing Then CurseForgeThread.Wait()
If Task.IsAborted Then Exit Sub '会自动触发 Finally
- If ModrinthThread IsNot Nothing Then ModrinthThread.Join()
+ If ModrinthThread IsNot Nothing Then ModrinthThread.Wait()
If Task.IsAborted Then Exit Sub
'确保存在结果
@@ -1061,8 +1064,7 @@ Retry:
End If
Finally
- If CurseForgeThread IsNot Nothing Then CurseForgeThread.Interrupt()
- If ModrinthThread IsNot Nothing Then ModrinthThread.Interrupt()
+ TokenSource.Cancel()
End Try
#End Region
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb
index e9988bd6d..ccc4a4e53 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb
@@ -186,7 +186,7 @@ NextInner:
Private Sub McLaunchMemoryOptimize(Loader As LoaderTask(Of Integer, Integer))
McLaunchLog("内存优化开始")
Dim Finished As Boolean = False
- RunInNewThread(
+ RunInNewTask(
Sub()
PageOtherTest.MemoryOptimize(False)
Finished = True
@@ -239,7 +239,7 @@ NextInner:
If CurrentLaunchOptions?.SaveBatch Is Nothing AndAlso '保存脚本时不提示
Not Setup.Get("HintBuy") AndAlso Setup.Get("LoginType") <> McLoginType.Ms Then
If IsSystemLanguageChinese() Then
- RunInNewThread(
+ RunInNewTask(
Sub()
Select Case Setup.Get("SystemLaunchCount")
Case 3, 8, 15, 30, 50, 70, 90, 110, 130, 180, 220, 280, 330, 380, 450, 550, 660, 750, 880, 950, 1100, 1300, 1500, 1700, 1900
@@ -1038,7 +1038,7 @@ Retry:
Throw New Exception("$登录尝试太过频繁,请等待几分钟后再试!")
ElseIf Message.Contains("(404)") Then
Log(ex, "微软登录第 7 步汇报 404")
- RunInNewThread(
+ RunInNewTask(
Sub()
Select Case MyMsgBox("请先创建 Minecraft 玩家档案,然后再重新登录。", "登录失败", "创建档案", "取消")
Case 1
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModMod.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModMod.vb
index f20e35283..a0eb873e7 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModMod.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModMod.vb
@@ -941,7 +941,7 @@ Finished:
Dim EndedThreadCount As Integer = 0, IsFailed As Boolean = False
Dim MainThread As Thread = Thread.CurrentThread
'从 Modrinth 获取信息
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
'步骤 1:获取 Hash 与对应的工程 ID
@@ -1006,7 +1006,7 @@ Finished:
End Try
End Sub, "Mod List Detail Loader Modrinth")
'从 CurseForge 获取信息
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
'步骤 1:获取 Hash 与对应的工程 ID
diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModWatcher.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModWatcher.vb
index ce900eae1..c2f051ccc 100644
--- a/Plain Craft Launcher 2/Modules/Minecraft/ModWatcher.vb
+++ b/Plain Craft Launcher 2/Modules/Minecraft/ModWatcher.vb
@@ -88,7 +88,7 @@
AddHandler GameProcess.ErrorDataReceived, AddressOf LogReceived
'初始化时钟
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
Do Until State = MinecraftState.Ended OrElse State = MinecraftState.Crashed OrElse State = MinecraftState.Canceled OrElse Loader.State = LoadState.Aborted
@@ -277,7 +277,7 @@
IsWindowFinished = True
'最大化
If Setup.Get("LaunchArgumentWindowType") = 4 Then
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
'如果最大化导致屏幕渲染大小不对,那是 MC 的 Bug,不是我的 Bug
@@ -350,7 +350,7 @@
WatcherLog("Minecraft 已崩溃,将在 2 秒后开始崩溃分析")
Hint("检测到 Minecraft 出现错误,错误分析已开始……")
FeedbackInfo()
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
Thread.Sleep(2000)
diff --git a/Plain Craft Launcher 2/Modules/ModMain.vb b/Plain Craft Launcher 2/Modules/ModMain.vb
index 5eda3e17a..5d58f27dc 100644
--- a/Plain Craft Launcher 2/Modules/ModMain.vb
+++ b/Plain Craft Launcher 2/Modules/ModMain.vb
@@ -943,7 +943,7 @@ NextFile:
End If
End Sub
Public Sub TimerMainStart()
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
Do While True
@@ -955,7 +955,7 @@ NextFile:
End Try
End Sub, "Timer Main")
If Not IsAprilEnabled Then Exit Sub
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
Dim LastTime = My.Computer.Clock.TickCount
diff --git a/Plain Craft Launcher 2/Modules/ModMusic.vb b/Plain Craft Launcher 2/Modules/ModMusic.vb
index 060091ab2..e9a098ee0 100644
--- a/Plain Craft Launcher 2/Modules/ModMusic.vb
+++ b/Plain Craft Launcher 2/Modules/ModMusic.vb
@@ -212,7 +212,7 @@
If Address Is Nothing Then Return
Log("[Music] 播放开始:" & Address)
MusicCurrent = Address
- RunInNewThread(Sub() MusicLoop(IsFirstLoad), "Music", ThreadPriority.BelowNormal)
+ RunInNewTask(Sub() MusicLoop(IsFirstLoad), "Music", ThreadPriority.BelowNormal)
End Sub
'播放与暂停
diff --git a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb
index a748106ee..d1a343935 100644
--- a/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb
+++ b/Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb
@@ -1641,7 +1641,7 @@ Retry:
Public Sub McDownloadForgeRecommendedRefresh()
If IsForgeRecommendedRefreshed Then Exit Sub
IsForgeRecommendedRefreshed = True
- RunInNewThread(Sub()
+ RunInNewTask(Sub()
Try
Log("[Download] 刷新 Forge 推荐版本缓存开始")
Dim Result As String = NetGetCodeByLoader("https://bmclapi2.bangbang93.com/forge/promos")
diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb
index c8557a8f4..c53db8f90 100644
--- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadCompDetail.xaml.vb
@@ -286,7 +286,7 @@
Public Shared CachedFolder As String = Nothing '仅在本次缓存的下载文件夹
Public Sub Save_Click(sender As Object, e As EventArgs)
Dim File As CompFile = If(TypeOf sender Is MyListItem, sender, sender.Parent).Tag
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
Dim Desc As String = If(Project.Type = CompType.ModPack, "整合包", If(Project.Type = CompType.Mod, "Mod ", "资源包"))
diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/MyMsgLogin.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/MyMsgLogin.xaml.vb
index 174f4bee6..84f965bdb 100644
--- a/Plain Craft Launcher 2/Pages/PageLaunch/MyMsgLogin.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLaunch/MyMsgLogin.xaml.vb
@@ -92,7 +92,7 @@
Btn1.EventData = Website
Btn2.EventData = UserCode
'启动工作线程
- RunInNewThread(AddressOf WorkThread, "MyMsgLogin")
+ RunInNewTask(AddressOf WorkThread, "MyMsgLogin")
End Sub
Private Sub WorkThread()
diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb
index 448df0ba7..2d708b4a8 100644
--- a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb
@@ -218,7 +218,7 @@
Hint("正在获取披风列表,请稍候……")
IsChanging = True
'开始实际获取
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
Retry:
diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchLeft.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchLeft.xaml.vb
index e74b3233b..e08f3a2ad 100644
--- a/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchLeft.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchLeft.xaml.vb
@@ -19,7 +19,7 @@
RefreshButtonsUI()
'加载版本
- RunInNewThread(
+ RunInNewTask(
Sub()
'自动整合包安装:准备
Dim PackInstallPath As String = Nothing
diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchRight.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchRight.xaml.vb
index c5dfecc39..9230fb756 100644
--- a/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchRight.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLaunch/PageLaunchRight.xaml.vb
@@ -28,7 +28,7 @@
''' 刷新自定义主页。
'''
Private Sub Refresh() Handles Me.Loaded
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
SyncLock RefreshLock
diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginMs.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginMs.xaml.vb
index 49c627eaa..ab935da50 100644
--- a/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginMs.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginMs.xaml.vb
@@ -68,7 +68,7 @@
ComboAccounts.IsEnabled = False
BtnLogin.IsEnabled = False
BtnLogin.Text = "0%"
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
McLoginMsLoader.Start(GetLoginData(), IsForceRestart:=True)
diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginMsSkin.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginMsSkin.xaml.vb
index 29e865e66..ecc3a0682 100644
--- a/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginMsSkin.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLaunch/PageLoginMsSkin.xaml.vb
@@ -85,7 +85,7 @@
Hint("正在更改皮肤……")
IsChanging = True
'开始实际获取
- RunInNewThread(
+ RunInNewTask(
Async Sub()
Try
Retry:
diff --git a/Plain Craft Launcher 2/Pages/PageLink/PageLinkHiper.xaml.vb b/Plain Craft Launcher 2/Pages/PageLink/PageLinkHiper.xaml.vb
index e0639aedf..f0fd1a077 100644
--- a/Plain Craft Launcher 2/Pages/PageLink/PageLinkHiper.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageLink/PageLinkHiper.xaml.vb
@@ -21,7 +21,7 @@
If IsLoad Then Exit Sub
IsLoad = True
'启动监视线程
- If Not IsWatcherStarted Then RunInNewThread(AddressOf WatcherThread, "Hiper Watcher")
+ If Not IsWatcherStarted Then RunInNewTask(AddressOf WatcherThread, "Hiper Watcher")
'读取索引码
Try
Dim Time As String = Setup.Get("LinkHiperCertTime")
diff --git a/Plain Craft Launcher 2/Pages/PageSelectLeft.xaml.vb b/Plain Craft Launcher 2/Pages/PageSelectLeft.xaml.vb
index 254d0813c..839f6efe7 100644
--- a/Plain Craft Launcher 2/Pages/PageSelectLeft.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageSelectLeft.xaml.vb
@@ -332,7 +332,7 @@
Next
Setup.Set("LaunchFolders", If(Not Folders.Any(), "", Join(Folders.ToArray, "|")))
End If
- RunInNewThread(
+ RunInNewTask(
Sub()
'删除文件夹
Try
diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb
index 7473e8667..6c519e58f 100644
--- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml.vb
@@ -557,7 +557,7 @@ Public Class PageVersionExport
Dim EndedThreadCount As Integer = 0, FailedExceptions As New List(Of Exception)
'从 Modrinth 获取信息
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
Dim ModrinthHashes = Loader.Input.Select(Function(m) m.ModrinthHash)
@@ -581,7 +581,7 @@ Public Class PageVersionExport
End Sub, "Modrinth - " & LoaderName)
'从 CurseForge 获取信息
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
If ModrinthUploadMode Then Return 'Modrinth 上传模式下,不能从 CurseForge 获取信息
diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb
index 3f1b77f12..fdc5143dc 100644
--- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb
+++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb
@@ -681,7 +681,7 @@ Install:
Log($"[Mod] 已从正在进行 Mod 更新的文件夹列表移除:{PathMods}")
UpdatingVersions.Remove(PathMods)
'清理缓存
- RunInNewThread(
+ RunInNewTask(
Sub()
Try
For Each TempFile In FileCopyList.Keys