0

Please look at this code and find out why it isnt working. I am not getting an alert in the webpage. But, the console.writeLine beneath it is getting executed.

    private void PublishLoop()
    {
        while (Running)
        {          
            Thread.Sleep(5000);
            dtMessages = (String)(Cache.Get(key));
            if (dtMessages == null)
            {
                //publish here
                dtMessages = LoadMessages();
                System.Diagnostics.Debugger.Log(0,null,dtMessages);
                Page.ClientScript.RegisterStartupScript(this.GetType(),"ClientScript", "alert('hi');",true);
                Console.WriteLine(dtMessages);
            }
        }

     }
4

1 に答える 1

0

編集:実際には、応答ごとに1つの一意のキーしか登録できません。このコード行はwhileループ内で実行されているため、同じキーを登録し続けます。この関数を呼び出すたびに、一意のキーパラメータを指定する必要があります。あなたの場合、おそらくあなたはあなたのループにカウンターを持っていて、それをあなたのキー文字列に追加することができます

int i = 0;
while (Running)
        {          
            Thread.Sleep(5000);
            dtMessages = (String)(Cache.Get(key));
            if (dtMessages == null)
            {
                //publish here
                dtMessages = LoadMessages();
                System.Diagnostics.Debugger.Log(0,null,dtMessages);
                Page.ClientScript.RegisterStartupScript(this.GetType(),"ClientScript" + i.ToString(), "alert('hi');",true);
                Console.WriteLine(dtMessages);
                i++;
            }
        }
于 2011-06-30T23:09:34.047 に答える