Various bugfixes

This commit is contained in:
JustArchi
2017-07-10 17:07:48 +02:00
parent 32b2ea9fb7
commit f4187e194e
6 changed files with 119 additions and 85 deletions

View File

@@ -95,22 +95,34 @@ namespace ArchiSteamFarm {
}
}
internal static void StartBackgroundAction(Action action) {
internal static void StartBackgroundAction(Action action, bool longRunning = true) {
if (action == null) {
ASF.ArchiLogger.LogNullError(nameof(action));
return;
}
Task.Factory.StartNew(action, TaskCreationOptions.DenyChildAttach | TaskCreationOptions.LongRunning).Forget();
TaskCreationOptions options = TaskCreationOptions.DenyChildAttach;
if (longRunning) {
options |= TaskCreationOptions.LongRunning;
}
Task.Factory.StartNew(action, options).Forget();
}
internal static void StartBackgroundFunction(Func<Task> function) {
internal static void StartBackgroundFunction(Func<Task> function, bool longRunning = true) {
if (function == null) {
ASF.ArchiLogger.LogNullError(nameof(function));
return;
}
Task.Factory.StartNew(function, TaskCreationOptions.DenyChildAttach | TaskCreationOptions.LongRunning).Forget();
TaskCreationOptions options = TaskCreationOptions.DenyChildAttach;
if (longRunning) {
options |= TaskCreationOptions.LongRunning;
}
Task.Factory.StartNew(function, options).Forget();
}
internal static IEnumerable<T> ToEnumerable<T>(this T item) where T : struct {