社区
C#
帖子详情
线程的终止问题。痛苦ing。
mobydick
2003-12-17 09:04:25
最近写了一个使用Socket进行通信的小东东。开了一个线程用于监听,但是在程序终止时这个线程不会被终止,只能用任务管理器中的<终止线程>按钮。我想实现的功能如下:
一个Form,上有两个Button,其中一个Button,开始线程
while(true)
{
Thread thread = new Thread(new ThreadStart(accp));
}
另一个Button结束线程,那这个方法应该怎么写呀?
...全文
75
6
打赏
收藏
线程的终止问题。痛苦ing。
最近写了一个使用Socket进行通信的小东东。开了一个线程用于监听,但是在程序终止时这个线程不会被终止,只能用任务管理器中的按钮。我想实现的功能如下: 一个Form,上有两个Button,其中一个Button,开始线程 while(true) { Thread thread = new Thread(new ThreadStart(accp)); } 另一个Button结束线程,那这个方法应该怎么写呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
l_clove
2003-12-18
打赏
举报
回复
你使用的是阻塞式的Socket?在侦听消息时线程可能不会被终止
设置Blocking为false试试。
gOODiDEA
2003-12-18
打赏
举报
回复
参考:
public class MyThread
{
public static void Work()
{
try
{
for( int i = 0; i < 4; i++ )
{
Console.WriteLine( Thread.CurrentThread.Name + "正在计算" + i.ToString() );
Thread.Sleep( 50 );
}
}
catch( ThreadAbortException e )
{
Console.WriteLine( "错误信息:{0}", e.Message );
Thread.ResetAbort();//取消主线程要求中止的请求,如不执行则ThreadAbortException会在catch块末端再次引发
}
Console.WriteLine( Thread.CurrentThread.Name + "完成工作!" );
}
}
class ThreadAbortTest
{
public static void Main()
{
Console.WriteLine( "主线程启动!");
Thread thread = new Thread( new ThreadStart( MyThread.Work ) );//MyThread.Work代表要执行的线程函数,它可以是静态的,也可以是某个类实例的方法,它是要执行的线程函数的委托
thread.Name = "MyThread";
thread.Start();//线程启动后将被CPU调度,但不一定是马上执行,所以同样的例子在不同的机器上可能会有不同的结果。
Console.WriteLine( "主线程第一次休眠!");
Thread.Sleep( 100 );
Console.WriteLine( "MyThread被挂起!");
thread.Suspend();//挂起子线程
Console.WriteLine( "主线程第二次休眠!");
Thread.Sleep( 100 );
Console.WriteLine( "MyThread被恢复!");
thread.Resume();//恢复子线程
thread.Abort();//终止子线程
thread.Join();//直到到子线程完全终止了,主线程才继续运行
Console.WriteLine( "主线程终止!" );
Console.ReadLine();
}
}
13880079673
2003-12-17
打赏
举报
回复
Abort是强制关闭线程,不大好
13880079673
2003-12-17
打赏
举报
回复
定义一个bool全局变量
在结束按钮里面重设它
在你的线程里面判断
速马
2003-12-17
打赏
举报
回复
// 但是在程序终止时这个线程不会被终止
如果函数可以正常返回,那自己就会中止,无需显式调用Abort()
速马
2003-12-17
打赏
举报
回复
thread.Abort();
JAVA多
线程
精讲下
线程
的同步(
线程
安全
问题
)l
线程
的死锁l
线程
间通信l
线程
组l
线程
池l 多
线程
的第三种实现方案l 匿名内部类方式使用多
线程
l 定时器的使用l 多
线程
面试题
【狂神说】多
线程
笔记
线程
简介2.
线程
创建2.1 Thread 1.
线程
简介 任务、进程、
线程
、多
线程
多任务 现实中太多这样同时做多件事情的例子了,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情。 【多
线程
】 ...
[译文]C# Heap(
ing
) Vs Stack(
ing
) in .NET: Part IV
原文地址:http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory_401282006141834PM/csharp_memory_4.aspx 绘图(Graph
ing
) 让我们从GC的角度来看这个
问题
。如果我们的目标是“移除垃圾”,那么我们...
程序员面试中遇到
问题
面试时候经常会问的一些
问题
(不断补充中) 面试必备基础题目(虽然不一定常用,仅用于面试,面试就是把人搞的都不会然后砍价,当然您可以讲我可以查资料完成,但是面试的时候就是没道理的,起码我是经常看到这些题). 如何...
程序员面试
问题
锦集
程序员面试
问题
锦集 面试必备基础题目(虽然不一定常用, 仅用于面试, 面试就是把人搞的都不会然后砍价, 当然您可以讲我可以查资料完成, 但是面试的时候就是没道理的, 起码我是经常看到这些题). 如何把一段逗号分割的...
C#
110,567
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章