多线程问题.如果让包函while为true的方法停下来 public void Starttest() { while (true) { try { 。。..........................................按按钮一启动如上多线程方法,在不按按钮2的情况下一直true循环运行。问题来了,除了关程序。能不能按另一个按钮让他停下来呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以,我之前做过,是这样做的:1.构造线程的时候,给它个名字,启动线程之前,把它加到一个dic(Dictionary<string, Thread>)里. Thread t = new Thread(new ThreadStart(this.RunThread)); t.Name = 线程名字; t.IsBackground = true; // 线程开始前 把它加入到DataTable dic.Add(t.Name, t);2.点停止按钮,就根据线程名字在dt里找出来,然后销毁掉. dic[线程名字].Abort(); dic[线程名字].Join();这方法针对多个线程也适用,需要停哪个就停哪个. 不仅仅是多线程,while(true)这样的循环,一般都会在循环内部设置某些条件,当这些条件满足的时候可以break,跳出无穷循环。有人说还不如直接把条件写在while后面,有些情况下,有些条件特别复杂,需要经过很多步骤才能判断。 Abort会引发线程异常,需要做好后续处理。 if(stop) return直接这样吧 最好不要去掉abort方法 while 内部等待一个 event( manualresetevent, or autoresetevent) 一定时间,如果没触发, 继续循环, 如果触发了, 退出循环外头要她停下来的地方触发 event 你的while循环 不要用true 用一个布尔变量就行了嘛!! 你想让它停下来的时候 就把那个布尔值置为falsebool loop = false;while(loop){}这样 while(true){ //但满足一定的条件时,break即可 if(条件) { break; }} 暂停就sleep.退出就return.或者采用互斥原则. WPF 数据绑定 怎样从一个textBox中取多个值 请问,关于base c#操作记事本中遇到的一些问题 关于MSDN上的这边文章 Chapter 11 — Improving Remoting Performance 求助,好心人进。在线等,急啊 你们看过网上下的一些所谓的开源项目吗,搞的真烦。 没分了。 Web前台如何自定义如同from里面的保存文件的对话框 asp.net C#问题 SQL语句,找不出错误,帮忙…… 把GridView放在了一个层里。然后放在网上。自己的电脑能看见GridView的内容。用别的电脑看不见。 帮忙写一个dll函数 (没有分了不好意思)
t.Name = 线程名字;
t.IsBackground = true; // 线程开始前 把它加入到DataTable
dic.Add(t.Name, t);2.点停止按钮,就根据线程名字在dt里找出来,然后销毁掉. dic[线程名字].Abort();
dic[线程名字].Join();这方法针对多个线程也适用,需要停哪个就停哪个.
有人说还不如直接把条件写在while后面,有些情况下,有些条件特别复杂,需要经过很多步骤才能判断。
return
直接这样吧 最好不要去掉abort方法
如果没触发, 继续循环, 如果触发了, 退出循环外头要她停下来的地方触发 event
while(loop)
{
}
这样
{
//但满足一定的条件时,break即可
if(条件)
{
break;
}}
退出就return.
或者采用互斥原则.