| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1253 人关注过本帖
标题:[求助]进程的开启和关闭问题
只看楼主 加入收藏
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
 问题点数:0 回复次数:10 
[求助]进程的开启和关闭问题

一个窗体运行后我点了一个BUTTON开启了一个线程
但是在窗体退出的时候用Application.Exit()无法关闭该程序开启的进程

问题1:怎么样可以在窗体关闭的时候杀死所有开启过的线程并且关闭该程序的进程

问题2:假如我想在窗体里用按扭控制线程的开启和关闭如何实现呢?
就是说窗体的开关不影响该按扭开启的线程的开关
我用这个线程来监听消息的 想窗体关闭的时候该线程继续驻留监听
但是我下次运行窗体的时候可以用按扭来控制该线程是否运行
也就是说第一种方法开启关闭都是在窗体打开关闭的时候执行
第二种方法我想让窗体变为控制界面 线程的打开关闭是有按钮来执行
但是这里面需要让每次打开窗体的时候都不影响线程的状态
并且点开启按钮的时候能检测是否已经开启
点关闭按钮的时候能检测是否已经成功关闭
请帮帮忙咯~

[此贴子已经被作者于2006-10-19 10:43:04编辑过]

搜索更多相关主题的帖子: 进程 
2006-10-19 10:05
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
[CODE]private void button_listen_Click_1(object sender, System.EventArgs e)
{
//开启
if(this.button_listen .Text .StartsWith ("开启监听"))
{
Thread server=new Thread (new ThreadStart (StartServer));
server.Start ();
this.button_listen .Text = "关闭监听";
}
//关闭
else if(this.button_listen .Text .StartsWith ("关闭监听"))
{
//怎么关闭呢?
this.button_listen .Text ="开启监听";
}
}[/CODE]

这个是我窗体里的控制按扭的代码

[此贴子已经被作者于2006-10-19 10:11:20编辑过]


此号自封于2006年11月30日
2006-10-19 10:10
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 

[CODE]public static void StartServer()
{
byte[] data = new byte[1024];
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050);
UdpClient newsock = new UdpClient(ipep);
Console.WriteLine("Waiting for a client...");
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
data = newsock.Receive(ref sender);
HelpMsg.WriteLog ("Message received from {0}:"+sender.ToString());
HelpMsg.WriteLog(Encoding.ASCII.GetString(data, 0, data.Length));
string welcome = "Welcome to my test server";
data = Encoding.ASCII.GetBytes(welcome);
newsock.Send(data, data.Length, sender);
while(true)
{
data = newsock.Receive(ref sender);

HelpMsg.WriteLog(Encoding.ASCII.GetString(data, 0, data.Length));
newsock.Send(data, data.Length, sender);
}
}[/CODE]

这个是我想开启监听的线程的代码


此号自封于2006年11月30日
2006-10-19 10:16
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
第一个问题找到了解决办法
开启线程的时候把线程的属性 IsBackground 设置为真 就可以了
这样当窗体退出的时候线程就随之关闭了

谁帮俺想想第二个问题呀
怎么样用按钮来控制线程的开启关闭呀

此号自封于2006年11月30日
2006-10-19 10:29
CrazyWeed0907
Rank: 2
等 级:新手上路
威 望:5
帖 子:1385
专家分:0
注 册:2006-5-30
收藏
得分:0 

按钮控制线程开启关闭没有问题啊, 但窗口关闭后,再重新打开,相当于又重新创建了一个实例,和前面一个没有关系了,好象有点麻烦噢,为什么要这么做啊,你直接把窗口最小化到托盘上去就不行吗


“十步杀一人,千里不留行。事了拂衣去,深藏身与名。”
2006-10-19 11:31
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
對線程需要全局引用

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-10-19 11:54
li_ming
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2006-4-1
收藏
得分:0 
没碰过这样的问题,不过你这样试试,你启动线程的时候给线程起个名字,你下次再运行窗体的时候读出所有的线程,再根据这个名字来查找该线程

2006-10-19 11:58
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
以下是引用CrazyWeed0907在2006-10-19 11:31:29的发言:

按钮控制线程开启关闭没有问题啊, 但窗口关闭后,再重新打开,相当于又重新创建了一个实例,和前面一个没有关系了,好象有点麻烦噢,为什么要这么做啊,你直接把窗口最小化到托盘上去就不行吗

恩 其实我是想把2个程序合到一起

确实比较麻烦

如果难以实现就单独做个程序好了~


此号自封于2006年11月30日
2006-10-19 12:11
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
以下是引用li_ming在2006-10-19 11:58:35的发言:
没碰过这样的问题,不过你这样试试,你启动线程的时候给线程起个名字,你下次再运行窗体的时候读出所有的线程,再根据这个名字来查找该线程

恩 我试过了

可是只能找到进程的名字
控制进程里面的线程怎么也弄不好


此号自封于2006年11月30日
2006-10-19 12:13
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
以下是引用chenjin145在2006-10-19 11:54:12的发言:
對線程需要全局引用

全局没用哦
因为窗体一关闭资源全部销毁了


此号自封于2006年11月30日
2006-10-19 12:14
快速回复:[求助]进程的开启和关闭问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025649 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved