线程全部退出

问题描述

各位大侠,我在用C#多线程读取串口数据时,当运行一段时间后,系统输出上百行线程退出提示,然后所有串口的数据都无法读取了,请教大家是什么原因?谢谢提示如下:(我只复制了其中的一部分提示)线程0x14ac已退出,返回值为0(0x0)。线程0xf64已退出,返回值为0(0x0)。线程0x1740已退出,返回值为0(0x0)。线程0x133c已退出,返回值为0(0x0)。线程0x154已退出,返回值为0(0x0)。线程0xf8c已退出,返回值为0(0x0)。线程0x163c已退出,返回值为0(0x0)。线程0xe1c已退出,返回值为0(0x0)。线程0x164c已退出,返回值为0(0x0)。线程0x14f0已退出,返回值为0(0x0)。线程0x103c已退出,返回值为0(0x0)。线程0x15fc已退出,返回值为0(0x0)。线程0x13e0已退出,返回值为0(0x0)。线程0x1784已退出,返回值为0(0x0)。线程0x17b0已退出,返回值为0(0x0)。线程0x119c已退出,返回值为0(0x0)。线程0xeb4已退出,返回值为0(0x0)。线程0x15f0已退出,返回值为0(0x0)。线程0x127c已退出,返回值为0(0x0)。线程0x1388已退出,返回值为0(0x0)。线程0xf80已退出,返回值为0(0x0)。线程0x1524已退出,返回值为0(0x0)。线程0x1774已退出,返回值为0(0x0)。线程0x1140已退出,返回值为0(0x0)。线程0x6e0已退出,返回值为0(0x0)。线程0x12e0已退出,返回值为0(0x0)。线程0x17ac已退出,返回值为0(0x0)。线程0xc8c已退出,返回值为0(0x0)。线程0xe10已退出,返回值为0(0x0)。线程0x8b4已退出,返回值为0(0x0)。线程0x1020已退出,返回值为0(0x0)。线程0x1620已退出,返回值为0(0x0)。线程0xe70已退出,返回值为0(0x0)。线程0x16b4已退出,返回值为0(0x0)。线程0x3ac已退出,返回值为0(0x0)。线程0x1dc已退出,返回值为0(0x0)。线程0x1258已退出,返回值为0(0x0)。线程0x1574已退出,返回值为0(0x0)。线程0xe18已退出,返回值为0(0x0)。线程0x107c已退出,返回值为0(0x0)。线程0xc90已退出,返回值为0(0x0)。

解决方案

解决方案二:
用多线程读串口数据不适合,建议直接用SerialPort对象。
解决方案三:
...........线程结束了
解决方案四:
我就是用多线程技术和SerialPort读取的串口,有没有知道线程退出原因的?
解决方案五:
学习啦。。。多线程了解一点,可能帮不上什么忙
解决方案六:
你好,请问你的问题解决了吗,我也遇到这个问题了哎,感觉这些线程退出的过程很耗费系统资源,导致响应变慢,可以请教一下吗?
解决方案七:
你的程序是怎样的?贴出来,线程结束是正常的,只要线程工作函数执行完线程就结束了,

时间: 2024-08-02 05:16:12

线程全部退出的相关文章

c++-关于线程无法退出的问题。

问题描述 关于线程无法退出的问题. 最近写了个线程池的程序,可是在最后线程函数一直无法退出 请各路大神帮忙解答一下.由于行数比较多就不全贴出来了.线程池实现:析构函数:TthreadControl::~TthreadControl(){ while( numOfWaitJobs != 0 ){ printf(""size: "" numOfWaitJobs); //cout << ""size:"" <<

linux. 线程 异常-linux线程异常退出问题。

问题描述 linux线程异常退出问题. linux进程(多条线程),其中有一个线程死循环没有执行任何操作(长期占用CPU 99%),linux系统有没有可能会干掉这条异常线程,但是整个进程没有退出? 求大神解答,没分- 解决方案 线程问题:空指针异常linux线程异常保护Linux进程.线程问题 解决方案二: 系统会直接杀进程.而不是线程 解决方案三: 对系统来说进程是软件运行的最小单位.所以会直接kill你这个进程.除非进程知道自己命不久矣,将会导致自己gg的线程给处理掉.

UNIX环境高级编程:主线程与子线程的退出关系

我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下. 1.  主线程等待新线程先结束退出,主线程后退出.正常执行. 示例代码: #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <sys/types.h> pthread_t ntid;//线程ID void print

关于线程的执行和退出

线程由两部分构成: 线程内核对象:操作系统用它来对线程实施管理.内核对象也是系统用来存放线程统计信息的地方. 线程堆栈:它用于维护线程在执行代码时需要的所有函数参数和局部变量.   我们必需要知道一个事实 ----- 进程( WINDOWS 中)是不能被调度的.通常所说的调度,都是对线程而言的.进程仅仅是线程的容器,是系统统分配资源的单位. 这样,线程自身不会分配资源.同一进程中的多个线程共同使用它们父进程的资源.   一个进程至少需一个线程,如果一个进程中不存在线程(所有线程都退出).则系统认

linux多线程编程中如何等待过个线程退出

问题描述 linux多线程编程中如何等待过个线程退出 linux多线程编程中,如果线程A创建了线程B,我知道用pthread__ join可以令线程A 阻塞然后等待线程B的退出.如果线程A创建了三个线程B,C,D,执行完的先后顺序不知.想让A必须等待三个线程都退出后再退出,应该怎么做? 连用pthread__join三次吗???但是第一次用了pthread__join后,A不就阻塞了吗? 解决方案 多线程编程(一):线程创建和退出Linux多线程编程(创建线程)Linux多线程编程(创建线程)

UNIX环境高级编程:线程私有数据

线程私有数据(Thread-specific data,TSD):存储和查询与某个线程相关数据的一种机制.   在进程内的所有线程都共享相同的地址空间,即意味着任何声明为静态或外部变量,或在进程堆声明的变量,都可以被进程内所有的线程读写. 一个线程真正拥有的唯一私有存储是处理器寄存器,栈在"主人"故意暴露给其他线程时也是共享的. 有时需要提供线程私有数据:可以跨多个函数访问(全局):仅在某个线程有效(私有)(即在线程里面是全局).例如:errno. 进程中的所有线程都可以访问进程的整个

java的线程死锁

由于线程可能进入堵塞状态,而且由于对象可能拥有"同步"方法--除非同步锁定被解除,否则线程不能访问那个对象--所以一个线程完全可能等候另一个对象,而另一个对象又在等候下一个对象,以此类推.这个"等候"链最可怕的情形就是进入封闭状态--最后那个对象等候的是第一个对象!此时,所有线程都会陷入无休止的相互等待状态,大家都动弹不得.我们将这种情况称为"死锁".尽管这种情况并非经常出现,但一旦碰到,程序的调试将变得异常艰难. 就语言本身来说,尚未直接提供防

c#线程基础之线程控制

用ManualResetEvent和AutoResetEvent可以很好的控制线程的运行和线程之间的通信.msdn的参考为: http://msdn.microsoft.com/zh-cn/library/system.threading.autoresetevent.aspx http://msdn.microsoft.com/zh-cn/library/system.threading.manualresetevent.aspx 下面我写个例子,这里模拟了一个线程更新数据,两个线程读取数据.

API之进程和线程函数

CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 CreateEvent 创建一个事件对象 CreateMailslot 创建一个邮路.返回的句柄由邮路服务器使用(收件人) CreateMutex 创建一个互斥体(MUTEX) CreateNamedPipe 创建一个命名管道.返回的句柄由管道的服