winform 进度条 单线程还是多线程? 多线程线程winform 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //进度条更新委托这部分怎么减缩成 this.Invoke(new Action(() => { }));形式的,因为有两个参数,不知道怎么传 http://msdn.microsoft.com/zh-cn/library/system.threading.thread.aspx Thread类只有这几种构造,你那么写编译没问题? ThreadStart==>fThread.Start(); 这代码真的能跑? private void SetTextMessage(int i, int total) { if (this.InvokeRequired) { SetPos setpos = new SetPos(SetTextMessage); this.Invoke(setpos, new object[] { i,total }); } }这里不是死循环么 Action 是个泛型委托,可以这样加参数: this.Invoke(new Action<string, string, int>((x, k, y) => { //ToDo }), new object[] { "1", "2", 3 }); 多参数的就这样写呗:this.Invoke(new Action(()=>{方法(参数1,参数2,参数3);})) Thread fThread = new Thread( new ThreadStart(similarpro));首先肯定是多线程了,不然更新时,你UI线程可能会卡。new ThreadStart(similarpro),实际就是实例化了一个委托对象,这个对象对应的方法是similarpro。当然也可以下列几种写法:Thread fThread = new Thread( new ThreadStart( ()=>{ //定义action委托对应方法需要的参数 object p; //更新UI线程上的控件,必须用Invoke,跨线程的更新,只有4个方法是安全的,Invoke就是其中之一。 this.Invoke( new action( ()=>{//更新逻辑} ),p ); } ));fThread.Start()这种是线程不带参数的写法。下面这种是线程带参数的写法object threadParameter;Thread fThread = new Thread( new ParameterizedThreadStart() { ...这里上面一样。 });fThread.Start(threadParameter); 不是 我想问的是Thread fThread = new Thread( new ThreadStart(similarpro)); 跟Thread fThread = new Thread(similarpro); 有什么区别 为什么都行呢.. Thread fThread = new Thread(similarpro); 直接这样写也不会卡死 都是正常的 C# 实时获取打印机状态 webbrower 问题 用c# 画gif格式的图片 TabControl 的TabPage 间隔问题,急!!! C# 键盘事件 用webBrowser翻页抓取 如何修改IE的"标准按钮" 为什么dataset 在messagebox()后会清空数据 菜鸟关于Form的问题 在线急等啊!!!!!!!!!!!!!!!1 要陪老婆,兄弟们,给我顶住,我先闪了,..... winform中实现画图 用C#做一个聊天室
这部分怎么减缩成
this.Invoke(new Action(() =>
{
}));
形式的,因为有两个参数,不知道怎么传
{
if (this.InvokeRequired)
{
SetPos setpos = new SetPos(SetTextMessage);
this.Invoke(setpos, new object[] { i,total });
}
}
这里不是死循环么
this.Invoke(new Action<string, string, int>((x, k, y) =>
{
//ToDo
}), new object[] { "1", "2", 3 });
多参数的就这样写呗:
this.Invoke(new Action(()=>{方法(参数1,参数2,参数3);}))
首先肯定是多线程了,不然更新时,你UI线程可能会卡。
new ThreadStart(similarpro),实际就是实例化了一个委托对象,这个对象对应的方法是similarpro。
当然也可以下列几种写法:
Thread fThread = new Thread(
new ThreadStart(
()=>{
//定义action委托对应方法需要的参数
object p;
//更新UI线程上的控件,必须用Invoke,跨线程的更新,只有4个方法是安全的,Invoke就是其中之一。
this.Invoke(
new action(
()=>{//更新逻辑}
),p
);
}
)
);
fThread.Start()
这种是线程不带参数的写法。下面这种是线程带参数的写法
object threadParameter;
Thread fThread = new Thread(
new ParameterizedThreadStart()
{
...这里上面一样。
}
);
fThread.Start(threadParameter);