public void StatusChangedEvent(object sender, EventArgs e) { ytdl_Item t = (sender as ytdl_Item); if (t.status == 0 || t.status.HasFlag(ytdl_State.error)) { Debug.WriteLine($"Status {t.status}: {t.url}"); t.StatusChangedEventHandler -= StatusChangedEvent; running_threads--; next(); //### Exeption ### //var callback = new Action(next); //callback.Invoke(); } ListChanged(); }
public void add(string url) { Debug.WriteLine($"Adding '{url}' to downloadlist."); ytdl_Item d = new ytdl_Item(url); if (proxy != "") { d.param = $"--proxy {proxy}"; } urls.Add(d); d.StatusChangedEventHandler += StatusChangedEvent; ListChanged(); if (running_threads < max_threads) { running_threads++; d.download(); } }
private void next() { ytdl_Item n = null; try { Debug.WriteLine($"Next: {urls.First(s => s.status.HasFlag(ytdl_State.notstarted))}"); n = urls.First(s => s.status.HasFlag(ytdl_State.notstarted)); } catch { Debug.WriteLine("EXEPTION: next()"); } if (n != null) { running_threads++; n.download(); } }
public ytdl_Item_EventArgs(ytdl_Item i) { ytdl_item = i; }