Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void Pacman()
- {
- Queue<MatchUpdateQueue> waiting = new Queue<MatchUpdateQueue>();
- events.WriteEntry("matchqueue worker thread started");
- while (!stop)
- {
- if (waiting.Count == 0)
- {
- /* grab any new items available */
- aDataContext db = new aDataContext();
- List<MatchUpdateQueue> freshitems = db.MatchUpdateQueues.OrderBy(item => item.id).ToList();
- foreach (MatchUpdateQueue item in freshitems)
- waiting.Enqueue(item);
- db.Dispose();
- }
- else
- {
- /* grab & dispatch waiting item */
- MatchUpdateQueue item = waiting.Peek();
- try
- {
- int result = ActionHandler.Handle(item);
- if (result == -1)
- events.WriteEntry("unknown command consumed : " + item.actiontype.ToString(), EventLogEntryType.Error);
- /* remove item from queue */
- waiting.Dequeue();
- /* remove item from database */
- aDataContext db = new aDataContext();
- db.MatchUpdateQueues.DeleteOnSubmit(db.MatchUpdateQueues.Single(i => i == item));
- db.SubmitChanges();
- db.Dispose();
- }
- catch (Exception ex)
- {
- events.WriteEntry("exception while handling item : " + ex.Message, EventLogEntryType.Error);
- stop = true;
- }
- }
- /* to avoid hammering database when there's nothing to do */
- if (waiting.Count == 0)
- Thread.Sleep(TimeSpan.FromSeconds(10));
- }
- events.WriteEntry("matchqueue worker thread halted");
- }
- db.MatchUpdateQueues.DeleteOnSubmit(db.MatchUpdateQueues.Single(theItem => theItem == item));
- Queue<MatchUpdateQueue> waiting = new Queue<MatchUpdateQueue>();
- events.WriteEntry("matchqueue worker thread started");
- while (!stop)
- {
- using (var db = new aDataContext())
- {
- if (waiting.Count == 0)
- {
- /* grab any new items available */
- List<MatchUpdateQueue> freshitems = db.MatchUpdateQueues
- .OrderBy(item => item.id)
- .ToList();
- foreach (MatchUpdateQueue item in freshitems)
- waiting.Enqueue(item);
- }
- ...
- }
- }
- aDataContext db = new aDataContext();
- item = new MatchUpdateQueue { id=item.id }; // <- updated
- db.MatchUpdateQueues.Attach(item);
- db.MatchUpdateQueues.DeleteOnSubmit(item);
- db.SubmitChanges();
- using (aDataContext db = new aDataContext())
- {
- var dbItem = db.MatchUpdateQueues.Single(i => i.Id == item.Id);
- db.MatchUpdateQueues.DeleteOnSubmit(dbItem);
- db.SubmitChanges();
- }
- public void InitForm()
- {
- 'bnsEntity is a BindingSource and cachedAreas is a List<Area> created from dataContext.Areas.ToList()
- bnsEntity.DataSource = cachedAreas;
- 'A nominal ID
- newID = cachedAreas.LastOrDefault().areaID + 1;
- 'grdEntity is a GridView
- grdEntity.DataSource = bnsEntity;
- }
- private void tsbNew_Click(object sender, EventArgs e)
- {
- var newArea = new Area();
- newArea.areaID = newID++;
- dataContext.GetTable<Area>().InsertOnSubmit(newArea);
- bnsEntity.Add(newArea);
- grdEntity.MoveToNewRecord();
- }
Add Comment
Please, Sign In to add comment