C#线程问题,自动终止程序

我这样写:
public Form1()
{
InitializeComponent();
Thread thread = new Thread(new ThreadStart(getlei));
thread.Start();
}
为什么程序一运行就自动停止了呢 ???
在窗口启动后我用线程往窗口的一个treeview里添加数据,为什么程序一启动就终止了啊,我是这样写的:
public Form1()
{
InitializeComponent();
Thread thread = new Thread(new ThreadStart(getlei));
thread.Start();

}
void getlei()
{
TreeNode no1 = new TreeNode();
no1.Text = "素材";
treeView1.Nodes.Add(no1);
}

第1个回答  2012-10-27
getlei 这个函数加个循环,不让他退出追问

这个函数只是用来添加数据,添加完了就应该释放啊,而且我在窗口启动后单击按钮启动线程为什么就不可以往treeview里添加数据了

追答

void getlei()
{
while(true)
{
TreeNode no1 = new TreeNode();
no1.Text = "素材";
treeView1.Nodes.Add(no1);
}
}

第2个回答  2012-10-30
线程里没写循环
void getlei()
{ 加循环
TreeNode no1 = new TreeNode();
no1.Text = "素材";
treeView1.Nodes.Add(no1);
加循环
}本回答被网友采纳
第3个回答  2012-10-27
怎么写在这个地方了呢追问

请问那该写在什么地方呢

追答

你那个地方用就写在那个地方

c#做的软件运行总自动关闭怎么回事
通常这种情况是因为程序中使用了多个线程,而这个线程是由主线程创建的,当某个线程运行过程中,出现了未处理的异常。这将导致程序从主线程跳出,如果系统没有正常对这个线程进行处理,就会导致进程自动关闭。可考虑在系统的入口程序代码中增加一下代码来得知出现了什么异常,这样就可以找到那些未处理的异常进...

我也遇到了一个线程自动停止的问题 C#
while(true){try{\/\/你的代码}catch(exception e){\/\/将e.message记录一下,至于写入哪里随你的,比如存在文件或者写入系统日志中,建议用后者。}Thread.Sleep(5000);}再出错的时候检查一下这个日志看看问题在哪。

C#中关闭程序时如何自动结束正在运行的线程?
if(this.thread != null || this.thread.IsAlive){ this.thread.Abort();this.thread = null;} \/\/就OK了

C#线程程序运行几小时后无故退出
内存不够了,想想,用线程每隔几秒就访问一次,然后创建一个线程,你还定义的是全局的线程,每次都new 一个,没有释放,几个小时就会new出来几万甚至几十万个线程,都不被释放,超级计算机也禁不起这么折腾,要么在逻辑代码中加入线程挂起,或者直接KILL掉释放。

C#写的程序有的时候会自动关闭,是什么情况?不是经常出现,概率很小!请...
程序产生异常了 可能原因:1.代码问题,代码中使用了未赋值的随机变量,类之间的耦合过度,全局变量值被多个类或者线程调用,在某些情况下产生了异常。数组越界,除零等等。2.部分函数没有检查输入参数的有效值,输入了无效值 3.程序运行环境的问题,建议下载新的framework,或到其他环境试试 ...

C#语言,处理多线程时,让线程运行死循环,却有线程在处理数据时,意外退 ...
你的代码肯定有数据的错误,比如int型超过21亿溢出,非数字型字符串强制转换数字型,等等任何数据的错误都会导致线程退出,你把死循环整个try{}catch{}起来,就不会退出了

C#winform使用了多线程,有时候程序再运行中直接就退出了!
直接退出是你的程序后台出现错误或是触发了异常所致,鉴于你同时用了timer和线程去刷新listView数据,可能是你创建线程刷新数据那里出错了~这个需要具体调试,但是我想说的是你的线程和timer 做的是同一件事情,timer本身就是实时去检测并刷新listView数据源的,socket无非是在接受到消息时刷新而已不是实时...

c#线程异常终止怎么解决。
用try catch扑捉下异常,如果出了异常就才catch中关掉或者重新开启线程.

c#线程异常终止怎么解决
try{}catch(Exception e){}下,看看异常出现在哪里。或者设置断点,单步执行查找异常出现的语句。

c# 线程自动停止
Thread th=new Thread(CustomMethod)th.start();线程方法CustomMetho执行完结,线程th也自动终止。

相似回答