请教跨线程给服务器控件赋值的问题,急!
protected void Page_Load(object sender, EventArgs e)
{
atime.Elapsed += new System.Timers.ElapsedEventHandler(timetogo);
atime.Interval = 10000;
atime.Enabled = true;
}
protected void timetogo(object sender, EventArgs e)
{
List<Npt.Model.CardOperation> model = new List<Model.CardOperation>();
model = Bll.GetDriverOperationResult(userid);
if (model != null)
{
for (int i = 0; i < model.Count; i++)
{
if (model[i].Photo != null)
{
atime.Enabled = false;
BindIMG(model[i]);
}
}
}
}
private void BindIMG(Model.CardOperation model)
{
string _name = model.OperateTime.ToString("yyMMddHHmmss");
string url = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "Photo\" + _name + ".jpg";
CrossAppDomainDelegate cross = delegate()
{
if (!System.IO.File.Exists(url))
{
model.Photo.Save(url);
imgurl = "/Photo/" + _name + ".jpg";
DSPimg.ImageUrl = imgurl;
}
else
{
imgurl = "/Photo/" + _name + ".jpg";
DSPimg.ImageUrl = imgurl;
return;
}
};
}
DSPimg是服务器控件asp:Image,这里赋值了地址,没有显示图片,求教导。谢谢 多线程 控件
[解决办法]
不用想了,窗体应用程序还可以,
web程序,不是在主线程中的值,根本不会返回给浏览器,你赋值有什么用?web程序运行原理是无法违背的
你这个你可以用asp的定时器控件,辅以updatepanel进行ajax刷新,可以有你要的效果。
不过建议你抛弃服务器控件,自己写js定时器ajax请求服务器