Changed: tasks instead of background workers

This commit is contained in:
Ray 2020-08-25 00:30:40 +01:00
parent 9e6992acd2
commit 9043901c73
2 changed files with 44 additions and 57 deletions

View File

@ -1,8 +1,8 @@
using bzit.bomg.Models; using bzit.bomg.Models;
using RyzStudio.Windows.Forms; using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using Form = System.Windows.Forms.Form; using Form = System.Windows.Forms.Form;
using Resources = bzit.bomg.Properties.Resources; using Resources = bzit.bomg.Properties.Resources;
@ -11,8 +11,7 @@ namespace bzit.bomg
{ {
public partial class BookmarkEditForm : Form public partial class BookmarkEditForm : Form
{ {
protected BackgroundWorker threadWorker = null; protected bool isBusy = false;
protected BookmarkItemModel itemModel = null; protected BookmarkItemModel itemModel = null;
protected BookmarkTreeView treeView = null; protected BookmarkTreeView treeView = null;
@ -23,38 +22,6 @@ namespace bzit.bomg
treeView = treeview; treeView = treeview;
this.StartPosition = FormStartPosition.WindowsDefaultLocation; this.StartPosition = FormStartPosition.WindowsDefaultLocation;
if (threadWorker == null)
{
threadWorker = new BackgroundWorker();
threadWorker.WorkerReportsProgress = threadWorker.WorkerSupportsCancellation = true;
threadWorker.DoWork += threadWorker1_DoWork;
threadWorker.RunWorkerCompleted += threadWorker1_RunWorkerCompleted;
}
}
protected void threadWorker1_DoWork(object sender, DoWorkEventArgs e)
{
if (itemModel == null)
{
itemModel = new BookmarkItemModel();
}
itemModel.SiteAddress = textBox2.Text;
bool rv = itemModel.Update();
if (rv)
{
ThreadControl.SetText(textBox1, itemModel.SiteName);
ThreadControl.SetText(textBox2, itemModel.SiteAddress);
ThreadControl.SetText(memoBox1, itemModel.SiteDescription);
ThreadControl.SetImage(pictureBox2, itemModel.RetrieveFavicon());
}
}
protected void threadWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.IsBusy = false;
} }
protected override void OnShown(EventArgs e) protected override void OnShown(EventArgs e)
@ -88,9 +55,10 @@ namespace bzit.bomg
protected bool IsBusy protected bool IsBusy
{ {
get => threadWorker.IsBusy; get => isBusy;
set set
{ {
isBusy = value;
textBox1.Enabled = textBox2.Enabled = memoBox1.Enabled = !value; textBox1.Enabled = textBox2.Enabled = memoBox1.Enabled = !value;
pictureBox1.Image = (value) ? Resources.aniZomq2x32 : null; pictureBox1.Image = (value) ? Resources.aniZomq2x32 : null;
@ -110,7 +78,7 @@ namespace bzit.bomg
pictureBox2.Image = treeView.ImageList.Images[treeView.SelectedNode.ImageIndex]; pictureBox2.Image = treeView.ImageList.Images[treeView.SelectedNode.ImageIndex];
} }
private void button1_Click(object sender, EventArgs e) private async void button1_Click(object sender, EventArgs e)
{ {
if (this.IsBusy) if (this.IsBusy)
{ {
@ -124,30 +92,33 @@ namespace bzit.bomg
this.IsBusy = true; this.IsBusy = true;
threadWorker.RunWorkerAsync(); //threadWorker.RunWorkerAsync();
await Task.Run(() =>
{
if (itemModel == null) itemModel = new BookmarkItemModel();
itemModel.SiteAddress = textBox2.Text;
bool rv = itemModel.Update();
if (rv)
{
ThreadControl.SetText(textBox1, itemModel.SiteName);
ThreadControl.SetText(textBox2, itemModel.SiteAddress);
ThreadControl.SetText(memoBox1, itemModel.SiteDescription);
ThreadControl.SetImage(pictureBox2, itemModel.RetrieveFavicon());
}
});
this.IsBusy = false;
} }
private void button2_Click(object sender, EventArgs e) private void button2_Click(object sender, EventArgs e)
{ {
if (this.IsBusy) if (this.IsBusy) return;
{ if (string.IsNullOrWhiteSpace(textBox1.Text)) return;
return; if (string.IsNullOrWhiteSpace(textBox2.Text)) return;
}
if (string.IsNullOrWhiteSpace(textBox1.Text)) if (itemModel == null) itemModel = new BookmarkItemModel();
{
return;
}
if (string.IsNullOrWhiteSpace(textBox2.Text))
{
return;
}
if (itemModel == null)
{
itemModel = new BookmarkItemModel();
}
itemModel.SiteName = textBox1.Text?.Trim(); itemModel.SiteName = textBox1.Text?.Trim();
itemModel.SiteAddress = textBox2.Text?.Trim(); itemModel.SiteAddress = textBox2.Text?.Trim();
@ -157,5 +128,6 @@ namespace bzit.bomg
this.Close(); this.Close();
} }
} }
} }

View File

@ -77,6 +77,13 @@ namespace bzit.bomg
// favicon // favicon
this.FaviconAddress = parseSiteIcon(document); this.FaviconAddress = parseSiteIcon(document);
// default infurred icon
if (string.IsNullOrWhiteSpace(this.FaviconAddress))
{
this.FaviconAddress = "/favicon.ico";
}
if (!string.IsNullOrWhiteSpace(this.FaviconAddress)) if (!string.IsNullOrWhiteSpace(this.FaviconAddress))
{ {
Uri iconAddressURI; Uri iconAddressURI;
@ -103,6 +110,13 @@ namespace bzit.bomg
// favicon // favicon
this.FaviconAddress = parseSiteIcon(document); this.FaviconAddress = parseSiteIcon(document);
// default infurred icon
if (string.IsNullOrWhiteSpace(this.FaviconAddress))
{
this.FaviconAddress = "/favicon.ico";
}
if (!string.IsNullOrWhiteSpace(this.FaviconAddress)) if (!string.IsNullOrWhiteSpace(this.FaviconAddress))
{ {
Uri iconAddressURI; Uri iconAddressURI;
@ -305,7 +319,7 @@ namespace bzit.bomg
rs = parseTagValue_Attr(doc, "//meta[@itemprop='name']", "content", string.Empty); rs = parseTagValue_Attr(doc, "//meta[@itemprop='name']", "content", string.Empty);
} }
return rs; return rs?.Trim();
} }
protected string parseSiteDescription(HtmlDocument doc) protected string parseSiteDescription(HtmlDocument doc)
@ -394,5 +408,6 @@ namespace bzit.bomg
return rs; return rs;
} }
} }
} }