在我的程序中,我有大约40个正在运行的任务,如下所示:
在TryReconnect()方法内部有一个无限循环,只有在任务被取消时才会停止。对我来说,这里一切都看起来很好。
然后我需要在按钮点击时启动一个非无限的任务:
private void StartTryReconnectTask() {
TryReconnectCTKS = new CancellationTokenSource();
TryReconnectTask = new Task(this.TryReconnect, TryReconnectCTKS.Token);
TryReconnectTask.Start();
}
在TryReconnect()方法内部有一个无限循环,只有在任务被取消时才会停止。对我来说,这里一切都看起来很好。
然后我需要在按钮点击时启动一个非无限的任务:
private void ExecuteRepairCommand(object o) {
Task.Run(() => {
...
});
}
启动这个新任务需要大约30/40秒的时间。 如果我使用线程,一切工作都很正常,线程会立即开始。为什么?原因是什么?
TaskCreationOptions.LongRunning
标志。 - Sriram Sakthivel