private void button1_Click(object sender, EventArgs e) { //cleanup this.dataGridView1.Rows.Clear(); List<Thread> threadpool = new List<Thread>(); Dictionary<string, Dictionary<string, Dictionary<ProductInfo.ProductInfo, string>>> PlatformProductInfo = new Dictionary<string, Dictionary<string, Dictionary<ProductInfo.ProductInfo, string>>>(); if (this.MomocheckBox.Checked) { SearchMomo.SearchMomo momo = new SearchMomo.SearchMomo(this.textBox1.Text, ref PlatformProductInfo); threadpool.Add(new Thread(momo.FindPrice)); threadpool.Last().Start(); } if (this.PchomecheckBox.Checked) { SearchPchome.SearchPchome pchome = new SearchPchome.SearchPchome(this.textBox1.Text, ref PlatformProductInfo); threadpool.Add(new Thread(pchome.FindPrice)); threadpool.Last().Start(); } if (this.YahoocheckBox.Checked) { SearchYahoo.SearchYahoo yahoo = new SearchYahoo.SearchYahoo(this.textBox1.Text, ref PlatformProductInfo); threadpool.Add(new Thread(yahoo.FindPrice)); threadpool.Last().Start(); } //wait for all thread finish foreach (var threads in threadpool) { while (threads.IsAlive) { Thread.Sleep(500); } } //output info foreach (var Platform in PlatformProductInfo) { foreach (var info in Platform.Value) { this.dataGridView1.Rows.Add(Platform.Key, info.Value[ProductInfo.ProductInfo.name], info.Value[ProductInfo.ProductInfo.price], info.Value.ContainsKey(ProductInfo.ProductInfo.spec)?info.Value[ProductInfo.ProductInfo.spec]:"N/A", info.Value[ProductInfo.ProductInfo.URL]); } } this.dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells); //FLASH WINDOWS FLASHWINFO FlashWINInfo = new FLASHWINFO(); FlashWINInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(FlashWINInfo)); FlashWINInfo.hwnd = Handle; FlashWINInfo.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG; FlashWINInfo.uCount = uint.MaxValue; FlashWINInfo.dwTimeout = 0; FlashWindowEx(ref FlashWINInfo); }
private void button1_Click(object sender, EventArgs e) { //cleanup this.dataGridView1.Rows.Clear(); List <Thread> threadpool = new List <Thread>(); Dictionary <string, Dictionary <string, Dictionary <ProductInfo.ProductInfo, string> > > PlatformProductInfo = new Dictionary <string, Dictionary <string, Dictionary <ProductInfo.ProductInfo, string> > >(); if (this.MomocheckBox.Checked) { SearchMomo.SearchMomo momo = new SearchMomo.SearchMomo(this.textBox1.Text, ref PlatformProductInfo); threadpool.Add(new Thread(momo.FindPrice)); threadpool.Last().Start(); } if (this.PchomecheckBox.Checked) { SearchPchome.SearchPchome pchome = new SearchPchome.SearchPchome(this.textBox1.Text, ref PlatformProductInfo); threadpool.Add(new Thread(pchome.FindPrice)); threadpool.Last().Start(); } if (this.YahoocheckBox.Checked) { SearchYahoo.SearchYahoo yahoo = new SearchYahoo.SearchYahoo(this.textBox1.Text, ref PlatformProductInfo); threadpool.Add(new Thread(yahoo.FindPrice)); threadpool.Last().Start(); } //wait for all thread finish foreach (var threads in threadpool) { while (threads.IsAlive) { Thread.Sleep(500); } } //output info foreach (var Platform in PlatformProductInfo) { foreach (var info in Platform.Value) { this.dataGridView1.Rows.Add(Platform.Key, info.Value[ProductInfo.ProductInfo.name], info.Value[ProductInfo.ProductInfo.price], info.Value.ContainsKey(ProductInfo.ProductInfo.spec)?info.Value[ProductInfo.ProductInfo.spec]:"N/A", info.Value[ProductInfo.ProductInfo.URL]); } } this.dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells); //FLASH WINDOWS FLASHWINFO FlashWINInfo = new FLASHWINFO(); FlashWINInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(FlashWINInfo)); FlashWINInfo.hwnd = Handle; FlashWINInfo.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG; FlashWINInfo.uCount = uint.MaxValue; FlashWINInfo.dwTimeout = 0; FlashWindowEx(ref FlashWINInfo); }