2
我有一個每10秒運行一次的循環,它會執行一些操作。它所做的一件事就是當有消息發送給應用用戶時,它會啓用按鈕。我想在按鈕啓用時向系統托盤發送通知,但由於顯而易見的原因,我只希望在用戶有未讀廣播時觸發一次通知。在循環中觸發通知一次
這裏是我的代碼:
private void EnableBroadcasts()
{
string query = "SELECT COUNT(*) FROM db.broadcasts WHERE broadcast_active = '1'";
int count = StoredProcedures.CountRecordsT4(query);
StreamReader re = new StreamReader(@"C:\\Users\\" + Environment.UserName + @"\\appdata\\Local\\Cache\\broadcasts.cache");
List<string> ReadBroadcastList = new List<string>();
List<string> BcastID = BroadcastID();
if (BroadcastCount != count)
{
string text = re.ReadToEnd();
re.Close();
string[] lines = text.Split('\r');
foreach (string s in lines)
{
ReadBroadcastList.Add(s);
}
for (int t = 0; t < ReadBroadcastList.Count(); t++)
{
ReadBroadcastList[t] = ReadBroadcastList[t].Trim('\n');
}
ReadBroadcastList.Remove("");
BroadcastCount = ReadBroadcastList.Count();
}
var test = BcastID.Except(ReadBroadcastList).ToList();
int read = test.Count();
if (count != 0)
{
btnWESBroadcast.Visible = true;
}
else
{
btnWESBroadcast.Visible = false;
}
按鈕使一次計數不爲零。我有從數據庫活動的廣播ID列表,我也有一個緩存文件,記錄該用戶已讀取的廣播ID。
我正在尋找一種解決方案,只有當按鈕處於活動狀態並且存在用戶尚未閱讀的廣播時纔會運行通知。
當沒有未讀消息時,每次循環運行時都不會觸發通知事件嗎? –
是的,這就是我如何理解你的問題所需的行爲:「*通知只在按鈕處於活動狀態並且有用戶沒有閱讀的廣播時運行*」 – IAbstract
道歉,我正在尋找的是隻有當按鈕激活時,通知纔會觸發一次。 –