Guest User

Untitled

a guest
Jun 24th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. static void Pacman()
  2. {
  3. Queue<MatchUpdateQueue> waiting = new Queue<MatchUpdateQueue>();
  4.  
  5. events.WriteEntry("matchqueue worker thread started");
  6.  
  7. while (!stop)
  8. {
  9. if (waiting.Count == 0)
  10. {
  11. /* grab any new items available */
  12. aDataContext db = new aDataContext();
  13. List<MatchUpdateQueue> freshitems = db.MatchUpdateQueues.OrderBy(item => item.id).ToList();
  14.  
  15. foreach (MatchUpdateQueue item in freshitems)
  16. waiting.Enqueue(item);
  17. db.Dispose();
  18. }
  19. else
  20. {
  21. /* grab & dispatch waiting item */
  22. MatchUpdateQueue item = waiting.Peek();
  23. try
  24. {
  25. int result = ActionHandler.Handle(item);
  26. if (result == -1)
  27. events.WriteEntry("unknown command consumed : " + item.actiontype.ToString(), EventLogEntryType.Error);
  28.  
  29. /* remove item from queue */
  30. waiting.Dequeue();
  31.  
  32. /* remove item from database */
  33. aDataContext db = new aDataContext();
  34. db.MatchUpdateQueues.DeleteOnSubmit(db.MatchUpdateQueues.Single(i => i == item));
  35. db.SubmitChanges();
  36. db.Dispose();
  37. }
  38. catch (Exception ex)
  39. {
  40. events.WriteEntry("exception while handling item : " + ex.Message, EventLogEntryType.Error);
  41. stop = true;
  42. }
  43. }
  44.  
  45. /* to avoid hammering database when there's nothing to do */
  46. if (waiting.Count == 0)
  47. Thread.Sleep(TimeSpan.FromSeconds(10));
  48. }
  49.  
  50. events.WriteEntry("matchqueue worker thread halted");
  51. }
  52.  
  53. db.MatchUpdateQueues.DeleteOnSubmit(db.MatchUpdateQueues.Single(theItem => theItem == item));
  54.  
  55. Queue<MatchUpdateQueue> waiting = new Queue<MatchUpdateQueue>();
  56. events.WriteEntry("matchqueue worker thread started");
  57. while (!stop)
  58. {
  59. using (var db = new aDataContext())
  60. {
  61. if (waiting.Count == 0)
  62. {
  63. /* grab any new items available */
  64. List<MatchUpdateQueue> freshitems = db.MatchUpdateQueues
  65. .OrderBy(item => item.id)
  66. .ToList();
  67. foreach (MatchUpdateQueue item in freshitems)
  68. waiting.Enqueue(item);
  69. }
  70. ...
  71. }
  72. }
  73.  
  74. aDataContext db = new aDataContext();
  75. item = new MatchUpdateQueue { id=item.id }; // <- updated
  76. db.MatchUpdateQueues.Attach(item);
  77. db.MatchUpdateQueues.DeleteOnSubmit(item);
  78. db.SubmitChanges();
  79.  
  80. using (aDataContext db = new aDataContext())
  81. {
  82. var dbItem = db.MatchUpdateQueues.Single(i => i.Id == item.Id);
  83. db.MatchUpdateQueues.DeleteOnSubmit(dbItem);
  84. db.SubmitChanges();
  85. }
  86.  
  87. public void InitForm()
  88. {
  89. 'bnsEntity is a BindingSource and cachedAreas is a List<Area> created from dataContext.Areas.ToList()
  90. bnsEntity.DataSource = cachedAreas;
  91. 'A nominal ID
  92. newID = cachedAreas.LastOrDefault().areaID + 1;
  93. 'grdEntity is a GridView
  94. grdEntity.DataSource = bnsEntity;
  95. }
  96.  
  97. private void tsbNew_Click(object sender, EventArgs e)
  98. {
  99. var newArea = new Area();
  100. newArea.areaID = newID++;
  101. dataContext.GetTable<Area>().InsertOnSubmit(newArea);
  102. bnsEntity.Add(newArea);
  103. grdEntity.MoveToNewRecord();
  104. }
Add Comment
Please, Sign In to add comment