public void Function1()
{
form1 f = new Form(); Thread trd = new Thread(new ThreadStart(f.Show));
// 在这里做点事情…… trd.Abort();
}上面的代码,我的企图是想让新开的窗口受一个新的线程控制,可是好像不行,请问该如何做呢?
{
form1 f = new Form(); Thread trd = new Thread(new ThreadStart(f.Show));
// 在这里做点事情…… trd.Abort();
}上面的代码,我的企图是想让新开的窗口受一个新的线程控制,可是好像不行,请问该如何做呢?
也就是说UI必须要创建它的线程去处理 一般程序就是主线程。 或者你可以用子线程去创建UI或者用线程推送 来告诉主线程 完成显示操作
private void writeText()
{
if (this.InvokeRequired)
{
this.Invoke(new dThread(writeText));
}
else
{
this.textBox1.Text = "jinjazz";
}
}参考 MSDN 关于 INVOKE INVOKEREQUIRED
public void Function1()
{
Thread trd = new Thread(new ThreadStart(ThreadPro));
// 在这里做点事情…… trd.Abort();
}private void ThreadPro()
{
form1 f = new Form();
f.Show();
//DoSomething;
}
//如果要在不是创建该控件的线程上访问空间,,要用Control.Invoke()
{
form1 f = new Form();
// 在这里做点事情……}
在别的线程中做 Thread trd = new Thread(new ThreadStart(Function1));
{
form1 f = new Form(); Thread trd = new Thread(new ThreadStart(f.Show));
// 在这里做点事情…… trd.Abort();
}
楼住 “在这里做点事” 你这和线程没关系。 做点事还是再住线程了
{
Thread t = new Thread(RefreshThread);
t.Start();
}
private void RefreshThread()
{
While(true)
{
Thread.sleep(10000);
this.RefreshForm();
}
}
private void RefreshForm()
{
if (this.InvokeRequired)
{
this.Refresh();
}
else
this.Refresh();
}