Changed: tasks instead of background workers
This commit is contained in:
		
							parent
							
								
									9e6992acd2
								
							
						
					
					
						commit
						9043901c73
					
				| @ -1,8 +1,8 @@ | ||||
| using bzit.bomg.Models; | ||||
| using RyzStudio.Windows.Forms; | ||||
| using RyzStudio.Windows.ThemedForms; | ||||
| using System; | ||||
| using System.ComponentModel; | ||||
| using System.Threading.Tasks; | ||||
| using System.Windows.Forms; | ||||
| using Form = System.Windows.Forms.Form; | ||||
| using Resources = bzit.bomg.Properties.Resources; | ||||
| @ -11,8 +11,7 @@ namespace bzit.bomg | ||||
| { | ||||
|     public partial class BookmarkEditForm : Form | ||||
|     { | ||||
|         protected BackgroundWorker threadWorker = null; | ||||
| 
 | ||||
|         protected bool isBusy = false; | ||||
|         protected BookmarkItemModel itemModel = null; | ||||
|         protected BookmarkTreeView treeView = null; | ||||
| 
 | ||||
| @ -23,38 +22,6 @@ namespace bzit.bomg | ||||
|             treeView = treeview; | ||||
| 
 | ||||
|             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) | ||||
| @ -88,9 +55,10 @@ namespace bzit.bomg | ||||
| 
 | ||||
|         protected bool IsBusy | ||||
|         { | ||||
|             get => threadWorker.IsBusy; | ||||
|             get => isBusy; | ||||
|             set | ||||
|             { | ||||
|                 isBusy = value; | ||||
|                 textBox1.Enabled = textBox2.Enabled = memoBox1.Enabled = !value; | ||||
| 
 | ||||
|                 pictureBox1.Image = (value) ? Resources.aniZomq2x32 : null; | ||||
| @ -110,7 +78,7 @@ namespace bzit.bomg | ||||
|             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) | ||||
|             { | ||||
| @ -124,30 +92,33 @@ namespace bzit.bomg | ||||
| 
 | ||||
|             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) | ||||
|         { | ||||
|             if (this.IsBusy) | ||||
|             { | ||||
|                 return; | ||||
|             } | ||||
|             if (this.IsBusy) return; | ||||
|             if (string.IsNullOrWhiteSpace(textBox1.Text)) return; | ||||
|             if (string.IsNullOrWhiteSpace(textBox2.Text)) return; | ||||
| 
 | ||||
|             if (string.IsNullOrWhiteSpace(textBox1.Text)) | ||||
|             { | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             if (string.IsNullOrWhiteSpace(textBox2.Text)) | ||||
|             { | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             if (itemModel == null) | ||||
|             { | ||||
|                 itemModel = new BookmarkItemModel(); | ||||
|             } | ||||
|             if (itemModel == null) itemModel = new BookmarkItemModel(); | ||||
| 
 | ||||
|             itemModel.SiteName = textBox1.Text?.Trim(); | ||||
|             itemModel.SiteAddress = textBox2.Text?.Trim(); | ||||
| @ -157,5 +128,6 @@ namespace bzit.bomg | ||||
| 
 | ||||
|             this.Close(); | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| } | ||||
| @ -77,6 +77,13 @@ namespace bzit.bomg | ||||
| 
 | ||||
|             // favicon | ||||
|             this.FaviconAddress = parseSiteIcon(document); | ||||
| 
 | ||||
|             // default infurred icon | ||||
|             if (string.IsNullOrWhiteSpace(this.FaviconAddress)) | ||||
|             { | ||||
|                 this.FaviconAddress = "/favicon.ico"; | ||||
|             } | ||||
| 
 | ||||
|             if (!string.IsNullOrWhiteSpace(this.FaviconAddress)) | ||||
|             { | ||||
|                 Uri iconAddressURI; | ||||
| @ -103,6 +110,13 @@ namespace bzit.bomg | ||||
| 
 | ||||
|             // favicon | ||||
|             this.FaviconAddress = parseSiteIcon(document); | ||||
| 
 | ||||
|             // default infurred icon | ||||
|             if (string.IsNullOrWhiteSpace(this.FaviconAddress)) | ||||
|             { | ||||
|                 this.FaviconAddress = "/favicon.ico"; | ||||
|             } | ||||
| 
 | ||||
|             if (!string.IsNullOrWhiteSpace(this.FaviconAddress)) | ||||
|             { | ||||
|                 Uri iconAddressURI; | ||||
| @ -305,7 +319,7 @@ namespace bzit.bomg | ||||
| 				rs = parseTagValue_Attr(doc, "//meta[@itemprop='name']", "content", string.Empty); | ||||
| 			} | ||||
| 
 | ||||
| 			return rs; | ||||
| 			return rs?.Trim(); | ||||
| 		} | ||||
| 
 | ||||
| 		protected string parseSiteDescription(HtmlDocument doc) | ||||
| @ -394,5 +408,6 @@ namespace bzit.bomg | ||||
| 
 | ||||
|             return rs; | ||||
| 		} | ||||
| 
 | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Ray
						Ray