我正在尝试使用 aspx 开发聊天。我已经让它与 asmx + winform 一起使用,但现在我遇到了 asmx + aspx 的问题。
基本上我想要做的是CheckForMessages
每两秒调用一次 WebMethod,如果有消息,将它们添加到更新面板内的列表框中并执行UpdatePanel1.Update();
.
问题是显然我不能像在我的 winform 中那样使用线程来执行此操作。
void check() {
while (true) {
Thread.Sleep(2000);
string message = CheckForMessages();
if (message != "") {
ListBox1.Items.Add(message);
UpdatePanel1.Update();
}
}
}
我这样开始线程:
protected void Page_Load(object sender, EventArgs e) {
timer = new Thread(new ThreadStart(check));
timer.Start();
}
它不会抛出异常或任何东西,程序按预期运行。调用 Web 服务,如果有消息则返回一个字符串,线程将消息添加到列表中并调用UpdatePanel1.Update();
. 然而面板没有更新。
可能是什么问题?