解决方案 »
- 求大神。。。
- 三成架构数据查询问题
- winform控件的使用问题,本人初次使用winform,麻烦各位大大帮忙,公司项目非常急,谢谢大家!
- 问个内存分配的问题~多谢
- 通过datatable更新数据库问题
- 急!!!不同窗体间的数据传递
- .net2005装完用了一天,第二天回来打不开设计器了,有朋友遇到过吗?
- 请问SplitContainer控件的splitContainer1_Panel1_MouseEnter事件如何在子控件里触发?
- 怎么实现在treeview里单击父节点打开子节点(web)!
- 自定义控件继承的问题
- Console.Out.WriteLine("asdf");
- listviewItems的checked问题。
因此可以利用一个通用的函数,来把一个操作(Action)放到UI线程上去执行:public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} public void SendAction(Action action)
{
if (this.InvokeRequired)
{
this.Invoke(action);
}
else
{
action();
}
} void Test()
{
Thread thread = new Thread(delegate()
{
Thread.Sleep(50);
img = HttpOper(httpPath); this.SendAction(() => { pb1.Image = img; });
this.SendAction(() => { pb2.Image = img; });
});
thread.Start();
}
}
前台线程(消息循环)只有一个
谢谢你的回答 很受启发,但可以这样写吗只写一个控件的invoke,
如:
if (pb1.InvokeRequired)
{
pb1..invoke(new action(()=>{
pb1.Image = img;
pb2.Image = img;
pb3.Image = img;
});
}
action是一个不带参数的委托。