我的程序就是要实现队列排队等候,有一个TList的全局变量,
WaitList := TList.Create;1, 在一个函数中读取其中的第一个元素
   if WaitList.Count = 0 then 
     exit;  MyItem := PMyItem(WaitList.Items[0])^;
  WaitList.Delete(0);
  
2, 在另一个函数中可以删除其中的某一个元素
  WaitList.DeleteItem(MyItem); //我自己写的一个函数
  
3, 还有一个函数可以不停的添加
  WaitList.AddItem(MyItem);   //我自己写的一个函数
  
这三个函数在不同的地方不断的被调用,但程序有时候出现了一些问题,我担心在执行第一个函数的时候
  if WaitList.Count = 0 then 
     exit;  //在这里执行了第二个函数,导致读取时出现异常
  MyItem := PMyItem(WaitList.Items[0])^;
  WaitList.Delete(0);这种担心有必要吗?怎么解决?
函数调用在执行时是严格串行的吗?会不会出现一个函数执行在半途中,又执行了另一个函数?