internal void CraftPathsImmediatelyNeeded() { if (!craftPathsCalculated) { RecipePath.PrepareGetCraftPaths(); craftPaths = RecipePath.GetCraftPaths(Main.recipe[index], CancellationToken.None, false); craftPathsCalculated = true; } }
private void DoGetCraftPath() { //var firstTask = Task.Run(() => craftPaths = RecipePath.GetCraftPaths(Main.recipe[index], cancellationTokenSource.Token), cancellationTokenSource.Token); RecipePath.PrepareGetCraftPaths(); var task = new Task(TaskAction); RecipeBrowser.instance.concurrentTasks.Enqueue(task); //firstTask.Start(); craftPathCalculationBegun = true; }
private void TaskAction() { craftPathCancellationTokenSource = new CancellationTokenSource(1); // TODO: Configurable // could a full override a simple? craftPaths = RecipePath.GetCraftPaths(Main.recipe[index], craftPathCancellationTokenSource.Token, true); if (!craftPathCancellationTokenSource.Token.IsCancellationRequested) { craftPathCalculated = true; //RecipeCatalogueUI.instance.updateNeeded = true; if (RecipeCatalogueUI.instance.slowUpdateNeeded == 0) { RecipeCatalogueUI.instance.slowUpdateNeeded = 5; } if (ItemCatalogueUI.instance.slowUpdateNeeded == 0) { ItemCatalogueUI.instance.slowUpdateNeeded = 30; } } }
private void DoGetCraftPaths() { cancellationTokenSource = new CancellationTokenSource(500); RecipePath.PrepareGetCraftPaths(); var firstTask = Task.Run(() => craftPaths = RecipePath.GetCraftPaths(Main.recipe[index], cancellationTokenSource.Token), cancellationTokenSource.Token); //var firstTask = new Task(() => craftPaths = RecipePath.GetCraftPaths(Main.recipe[index], cancellationTokenSource.Token), cancellationTokenSource.Token); var secondTask = firstTask.ContinueWith((t) => { if (!cancellationTokenSource.Token.IsCancellationRequested) { craftPathsCalculated = true; //RecipeCatalogueUI.instance.updateNeeded = true; if (RecipeCatalogueUI.instance.slowUpdateNeeded == 0) { RecipeCatalogueUI.instance.slowUpdateNeeded = 5; } } //else // Main.NewText(this.index + " cancelled"); }); //firstTask.Start(); craftPathsCalculationBegun = true; }