我有一个队列,它接收数据超时。我使用多线程出列并保存到数据库。我创建了一个线程数组来完成这项工作。
for (int i = 0; i < thr.Length; i++)
{
    thr[i] = new Thread(new ThreadStart(SaveData));
    thr[i].Start();
}
保存数据
注意:eQ 和 eiQ 是 2 个全局队列。我用while来保持线程活着。
public void SaveData()
{
    var imgDAO = new imageDAO ();
    string exception = "";
    try
    {
        while (eQ.Count > 0 && eiQ.Count > 0)
        {
            var newRecord = eQ.Dequeue();
            var newRecordImage = eiQ.Dequeue();                        
            imageDAO.SaveEvent(newEvent, newEventImage);
            var storepath = Properties.Settings.Default.StorePath;
            save.WriteFile(storepath, newEvent, newEventImage);
        }
    }
    catch (Exception e)
    {                
        Global._logger.Info(e.Message + e.Source);
    }
}
它确实创建了多线程,但是当我调试时,只有 1 个线程活着,其余的都死了。我不知道为什么?有人知道吗?Tks