queue があり、時間外にデータを受け取ります。マルチスレッドを使用してデキューし、データベースに保存しました。この作業を行うために、スレッドの配列を作成します。
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