私はいくつかのことを行う10秒ごとに実行されているループを持っています。一つは、アプリのユーザーに送信しているメッセージがあるときにボタンを有効にすることです。そのボタンが有効になっているときに通知をシステムトレイに送信したいのですが、わかりやすい理由から、ユーザーに未読のブロードキャストがあったときにその通知が1回だけトリガーされるようにしたいと思います。ここでループ内で一度だけトリガ通知を送信
は、私が持っているコードは次のとおりです。
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;
}
カウントがゼロではありません一度ボタンが有効になります。私はDBからアクティブなブロードキャストIDのリストを持っています。また、ユーザーが読み込んだブロードキャストIDを記録するキャッシュファイルもあります。
ボタンがアクティブで、ユーザーが読んでいないブロードキャストがあるときに通知が実行されるようなソリューションを探しています。
まだ未読メッセージがあるときにループが実行されるたびに通知イベントが発生しませんか? –
はい、これはあなたの質問から希望する動作を理解した方法です。「*通知は、ボタンがアクティブで、ユーザーが読んでいないブロードキャストがあるときに実行されます」* – IAbstract
謝罪、私が探しているのは、ボタンがアクティブになったら通知が1回だけ発生します。 –