十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果需要等待T2线程结束,那又何必开启这个线程!!
成都创新互联公司致力于互联网网站建设与网站营销,提供网站设计制作、成都做网站、网站开发、seo优化、网站排名、互联网营销、微信小程序开发、公众号商城、等建站开发,成都创新互联公司网站建设策划专家,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。
直接:
Label1.Visible = True
setB()
MsgBox("d")
这不就是执行完setB(),再执行MsgBox("d"),多线程是多余的。
多线程的作用大多数也就用来同时执行多任务而不用等待的。
登陆按钮里写:
private void button1_Click(object sender, EventArgs e)
{
Form2 fo1 = new Form2();
fo1.Show();
this.Visible=false;
}
第2个窗体的关闭事件里写
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
这样就可以了
me.dispose(); 这个是释放本对象的资源,,有时候直接把这个对象就清理了,,登陆窗体如果是入口窗体的话,,这么写就等于Application.Exit();
直接关整个应用程序了
插红旗噢 我还去vs里敲了一下
使用api
Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
用time控件啊,获取threadstate后,按指定时间间隔规定向界面刷新,线程必须是全局变量
用一个有退出条件的无限循环的sub也行。
线程开始就触发该过程,用无限循环来刷新状态,线程完成即退出无限循环。局部变量的线程也可以用这种方式。
不过用法要正确,否则会出问题。