C# Winform 主线程子线程问题

U闲程序猿 2017-03-28 08:10:57
  public class Static
{
public static Form2 f2 = new Form2();
public static string txt = "";
public static bool isshow = false;
}



public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
Static.isshow = true;
Thread td = new Thread(new ThreadStart(Shows));
td.Start();
}
private void Shows()
{
while (Static.isshow)
{
Static.f2.Show();
}

}
}



这样做副线程回不到主线程!如何让form1和form2分属于两个不同线程,form1 可以向form2传递值,但是form2执行的东西不会影响form1线程!
...全文
289 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这里就不要再去纠结如何错上加错的“通讯”问题了,要推倒这个思路,好好想想这里要干什么事?该如何捕获事件通知!该如何学习程序设计方法。
  • 打赏
  • 举报
回复
这种程序,轻则让一个程序“巨慢”,重则就是一些程序员毫不关心产品“死活”而向上瞒报设计问题。这类 while 循环是很严重的,所以所有人都要知道不能这样编程。我们一般在看到3次这类代码时,一定要辞退程序员。
mjp1234airen4385 2017-03-29
  • 打赏
  • 举报
回复
while (Static.isshow) { Static.f2.Show(); } 你这完全不给f2活路啊。
Poopaye 2017-03-28
  • 打赏
  • 举报
回复
form2执行的东西怎么影响form1了啊?
  • 打赏
  • 举报
回复
不会影响Form1 是什么意思? 传值考虑用ref 或者你申明一个public普通变量就好了啊? 你应该说的是线程并发问题吧?子线程改写了变量A的值 那A的值在主线程中的值也改变了,你是想不改变是这个意思么?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧