protected virtual async void Dispose(bool disposeSafe) { if (!disposed && !disposing) { disposing = true; if (disposeSafe) { Terminate = true; await Task.WhenAll(ControlTasks); //if (audioControlTask != null) await audioControlTask; //if (controllerCleanTask != null) await controllerCleanTask; //ControlTasks.ForEach(i => i?.Dispose()); //audioControlTask.Dispose(); //controllerCleanTask.Dispose(); try { core?.Dispose(); } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e.Message); } finally { core = null; } //await Task.Delay(50); } disposed = true; } }
protected virtual async void Dispose(bool disposeSafe) { if (!disposed && !disposing) { disposing = true; if (disposeSafe) { Terminate = true; await Task.WhenAll(ControlTasks); //if (audioControlTask != null) await audioControlTask; //if (controllerCleanTask != null) await controllerCleanTask; ControlTasks.ForEach(i => i?.Dispose()); //audioControlTask.Dispose(); //controllerCleanTask.Dispose(); core?.Dispose(); await Task.Delay(250); } disposed = true; } }