private void btnAdd_Click(object sender, EventArgs e) { string Item = FoodItemsListBox.SelectedItem.ToString(); string size = SizeListBox.SelectedItem.ToString(); if (string.IsNullOrWhiteSpace(Item)) { MessageBox.Show("Please Select Item"); return; } if (string.IsNullOrWhiteSpace(size)) { MessageBox.Show("Please Select Size"); return; } string quantity = QuantityTextBox.Text; int result; int.TryParse(quantity, out result); if (result < 1) { MessageBox.Show("Please Enter Quantity"); return; } var item = new ItemToUpdate { Name = Item, Size = size, Quantity = result }; itemsToSave.Add(item); ItemsGrid.DataSource = null; ItemsGrid.DataSource = itemsToSave; }
private void Throttle(object e) { Stopwatch stopwatch = new Stopwatch();; stopwatch.Start(); while (!Done) { long before = stopwatch.ElapsedMilliseconds; for (int i = 0; i < itemsPerSecond || itemsPerSecond == 0; i++) { if (Done) { return; } ItemToUpdate info = null; lock (lockObject) { if (itemQueue.Count == 0) { break; } info = itemQueue.Dequeue(); } if (multiThreaded) { ThreadPool.QueueUserWorkItem(LoadItem, info); } else { LoadItem(info); Interlocked.Increment(ref itemsDone); } } long elapsed = stopwatch.ElapsedMilliseconds - before; if (elapsed < 1000) { Thread.Sleep((int)(1000 - elapsed)); } } }
private void LoadItem(object state) { // check done status if (Done) { return; } // continue updating ItemToUpdate info = state as ItemToUpdate; Item i = null; try { if (useArmory) { i = Item.LoadFromId(info.item.Id, true, false, false); } else { i = Item.LoadFromId(info.item.Id, true, false, true, Rawr.Properties.GeneralSettings.Default.Locale, usePTR ? "ptr" : "www"); } } catch (Exception ex) { StatusMessaging.ReportError("Load item", ex, string.Format("Unable to update '{0}' due to an error: {1}\r\n\r\n{2}", info.item.Name, ex.Message, ex.StackTrace)); } bool completelyDone = false; lock (lockObject) { if (i != null /* && (i.Stats.ToString().Contains(",") || (i.Stats.Armor + i.Stats.BonusArmor == 0 && i.Stats.ToString().Length > 0))*/) { newItems.Add(info.index, i); } itemsDone++; completelyDone = done = finishedInput && itemsDone == itemsToDo; } if (completelyDone) { eventDone.Set(); } }
private void Throttle(object e) { DateTime start = DateTime.Now; while (!Done) { //long before = stopwatch.ElapsedMilliseconds; for (int i = 0; i < itemsPerSecond || itemsPerSecond == 0; i++) { if (Done) { return; } ItemToUpdate info = null; lock (lockObject) { if (itemQueue.Count == 0) { break; } info = itemQueue.Dequeue(); } if (multiThreaded) { ThreadPool.QueueUserWorkItem(LoadItem, info); } else { LoadItem(info); Interlocked.Increment(ref itemsDone); } } double elapsed = DateTime.Now.Subtract(start).TotalMilliseconds; if (elapsed < 1000) { Thread.Sleep((int)(1000 - elapsed)); } } }
public void AddItem(int index, Item item) { if (!multiThreaded) { Item i = null; try { if (useArmory) { i = Item.LoadFromId(item.Id, true, false, false); } else { i = Item.LoadFromId(item.Id, true, false, true, Rawr.Properties.GeneralSettings.Default.Locale, usePTR ? "ptr" : "www"); } } catch (Exception ex) { StatusMessaging.ReportError("Load item", ex, string.Format("Unable to update '{0}' due to an error: {1}\r\n\r\n{2}", item.Name, ex.Message, ex.StackTrace)); } if (i != null) { newItems.Add(index, i); } return; } ItemToUpdate info = new ItemToUpdate() { index = index, item = item }; lock (lockObject) { itemsToDo++; itemQueue.Enqueue(info); } }
public void AddItem(int index, Item item) { if (!multiThreaded) { Item i = null; try { if (useArmory) { i = Item.LoadFromId(item.Id, true, false, false, false); } else { i = Item.LoadFromId(item.Id, true, false, true, usePTR, Rawr.Properties.GeneralSettings.Default.Locale); } } catch (Exception ex) { StatusMessaging.ReportError("Load item", ex, string.Format("Unable to update '{0}' due to an error: {1}\r\n\r\n{2}", item.Name, ex.Message, ex.StackTrace)); } if (i != null) { newItems.Add(index, i); } return; } ItemToUpdate info = new ItemToUpdate() { index = index, item = item }; lock (lockObject) { itemsToDo++; itemQueue.Enqueue(info); } }