WCF サービスからデータを取得するスレッドを含む asp.net Web サイトがあります。そのスレッドは、各実行を 1 秒間待機する無限ループで実行されます。ここで、WCF サービスから取得したものをラベルで示したいと思います。そのラベルを UpdatePanel に追加し、.Update() メソッドを呼び出しました。例外はありませんが、ラベルはまったく更新されません。これが私のコードです(簡略化):
t = new Thread(new ThreadStart(() =>
{
while (true)
{
Label1.Text = GetFromWCF() + " " + DateTime.Now.ToString();
updatePanel.Update();
Thread.Sleep(1000);
}
}
));
t.IsBackground = true;
t.Start();
このコードは、ページの OnInit メソッドにあります。updatePanel は次のようになります。
<asp:ScriptManager runat="server" ID="scriptManager" EnablePartialRendering="true"/>
<asp:UpdatePanel runat="server" ID="updatePanel" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
何か不足していますか?また、私が asp.net を初めて使用することをお知らせする必要があるかもしれません。