请教c++11里面如何结束一个线程? [问题点数:20分,结帖人Jue_Xin]

Bbs1
本版专家分:0
结帖率 98.63%
Bbs7
本版专家分:15547
Blank
黄花 2014年11月 C/C++大版内专家分月排行榜第二
2014年10月 C/C++大版内专家分月排行榜第二
2014年8月 C/C++大版内专家分月排行榜第二
Bbs9
本版专家分:67244
版主
Blank
红花 2013年8月 Linux/Unix社区大版内专家分月排行榜第一
2012年11月 Linux/Unix社区大版内专家分月排行榜第一
2012年10月 Linux/Unix社区大版内专家分月排行榜第一
2012年9月 Linux/Unix社区大版内专家分月排行榜第一
2012年7月 Linux/Unix社区大版内专家分月排行榜第一
2012年6月 Linux/Unix社区大版内专家分月排行榜第一
2012年5月 Linux/Unix社区大版内专家分月排行榜第一
2011年11月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2013年6月 Linux/Unix社区大版内专家分月排行榜第二
2013年5月 Linux/Unix社区大版内专家分月排行榜第二
2013年3月 Linux/Unix社区大版内专家分月排行榜第二
2013年1月 Linux/Unix社区大版内专家分月排行榜第二
2012年12月 Linux/Unix社区大版内专家分月排行榜第二
2012年8月 Linux/Unix社区大版内专家分月排行榜第二
2011年12月 Linux/Unix社区大版内专家分月排行榜第二
2011年10月 C/C++大版内专家分月排行榜第二
2011年10月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年6月 C/C++大版内专家分月排行榜第三
2012年6月 PHP大版内专家分月排行榜第三
2012年5月 C/C++大版内专家分月排行榜第三
2012年3月 Linux/Unix社区大版内专家分月排行榜第三
2012年2月 Linux/Unix社区大版内专家分月排行榜第三
2011年11月 C/C++大版内专家分月排行榜第三
Bbs5
本版专家分:2457
版主
Bbs5
本版专家分:4571
版主
Bbs1
本版专家分:2
Bbs1
本版专家分:17
Bbs1
本版专家分:95
如何结束一个线程?
我用Delphi5.0做的程序,在TThread类的基础上生成自己的<em>线程</em>类,运行时正常,但强制<em>结束</em>时出现蓝屏,我用myThread.Terminate<em>结束</em><em>线程</em>,在<em>线程</em>的处理过程中判断它的Terminated属性,如果为真则exit退出.请问该<em>如何</em>解决?
[20160215] 停止std::thread/try-catch-?异常处理的
【std::thread】多<em>线程</em><em>如何</em>终止? 【异常处理碎碎念】
如何优雅地弄死std::thread?
std::thread t1(thread1); 比如<em>线程</em>是<em>一个</em>常驻<em>线程</em>(while),程序退出时要通知这个<em>线程</em>退出,有哪些方法呢?要能安全退出,不是暴力kill
[C++11]析构函数中std::thread::join()卡住无法退出
join()卡住分析 直接原因: 与main thread退出时候发生死锁。 main<em>结束</em>时候 CRT locktable.lock         ~          join等待其他<em>线程</em>退出 其他<em>线程</em><em>结束</em>时候 ->等待main释放CRT locktable.lock 与main<em>线程</em>死锁
c++11线程退出方式
主<em>线程</em>等待子<em>线程</em>退出方式有很多,以下示例是开发中个人觉得比较简单好用的一种方式: #include &amp;lt;iostream&amp;gt; #include &amp;lt;thread&amp;gt; #include &amp;lt;future&amp;gt; class Test{ public: Test(){ fun1_ = std::async(std::launch::async, std::bind(&amp;am...
C/C++ 四种结束线程方式详解
一、四种方式 1、<em>线程</em>自然return返回。 如果<em>线程</em>能够返回,就可以确保下列事项的实现: (1)在<em>线程</em>函数中创建的所有C++对象均将通过它们的析构函数正确地释放。 (2)操作系统将正确地释放<em>线程</em>堆栈使用的内存。 (3)系统将<em>线程</em>的退出代码(在<em>线程</em>的内核对象中维护)...
请问VB里面如何结束指定的线程
如题,不知道VB<em>里面</em>可不可以<em>结束</em>指定的<em>线程</em>
如何正确地结束一个线程
为什么不用stop()方法 一般来说,当<em>一个</em><em>线程</em>的方法体执行完,这个方法就会<em>结束</em>了。我们一般不直接使用stop方法来终止<em>线程</em>,这可能会导致业务逻辑不完整或者破坏原子性的操作,一段代码可能用来输出某些重要的信息,在方法的执行中使用stop方法终止<em>线程</em>,会使得输出的信息破坏或者不完整;在原子操作比如重入锁的使用时,当<em>一个</em><em>线程</em>对象多次获得锁会使得计数加一,接下来需要以相同的次数释放锁,别的<em>线程</em>才能获得锁...
如何等待一个线程结束
在c中有WaitForSingleObject的函数来等待<em>线程</em>的<em>结束</em>,rnjava中好像没有这类的函数,那么在java中<em>如何</em>实现?
c++11线程,怎么终止?
假如说我有5个<em>线程</em>同时搜索文件,但是发现耗时很长,想放弃本次搜索,该肿么办? 杀死这5个进程吗,然后等下次搜索的时候再创建5个? 或者创建同步变量,搜索<em>线程</em>每次循环到某个节点都去验证一次这个变量的值?
C/C++四种退出线程的方法
退出<em>线程</em>可以有四种方法: 1.<em>线程</em>函数的return返回(最好这样):   其中用<em>线程</em>函数的return返回, 而终止<em>线程</em>是最安全的, 在<em>线程</em>函数return返回后, 会清理函数内申请的类对象, 即调用这些对象的析构函数. 然后会自动调用 _endthreadex()函数来清理 _beginthreadex(...)函数申请的资源(主要是创建的tiddata对象). 2.调用 _endthr
如何使用 C++11 编写 Linux 多线程程序
本文讲述了<em>如何</em>使用 C++<em>11</em> 编写 Linux 下的多<em>线程</em>程序,<em>如何</em>使用锁,以及相关的注意事项,还简述了 C++<em>11</em> 引入的一些高级概念如 promise/future 等。在这个多核时代,<em>如何</em>充分利用每个 CPU 内核是<em>一个</em>绕不开的话题,从需要为成千上万的用户同时提供服务的服务端应用程序,到需要同时打开十几个页面,每个页面都有几十上百个链接的 web 浏览器应用程序,从保持着几 t 甚或几 p
C11线程编程(1)
在多核时代,<em>如何</em>让程序充分利用cpu是个非常重要的话题。在默认情况下,C++程序运行时只有<em>一个</em>主<em>线程</em>,入口是main()。 为了提升程序的并发处理能力,经常需要在程序中创建多个<em>线程</em>。 在C<em>11</em>之前,C++并没有在语言层面直接支持多<em>线程</em>,开发者只能调用操作系统提供的SDK API来编写。 这带来的问题是,不同的操作系统提供的SDK以及<em>线程</em>控制能力并不相同,这严重影响到程序的可移植性。 而C<em>11</em>
C++11并发之std::thread
std::thread 在 #include 头文件中声明,因此使用 std::thread 时需要包含 #include 头文件。
如何结束一个线程的运行
我的程序中需要对数据库执行<em>一个</em>时间很长的SQL,该SQL是用户提供的,因此不同的SQL执行时间可能不同,有缺乏经验的用户就可能提供<em>一个</em>SQL执行1个来小时,因此我的程序中t = new Thread()来执行这个SQL,然后rnsynchronized(t)rn t.wait(30*60*1000);rnrn等30分钟,要执行完,run()里有notify;要是没执行完,wait超时自己醒了,我要关t这个<em>线程</em>。rnt.stop()有效果,但不推荐了。rn有什么方法能实现。rnrnrun函数里没有循环就是执行那个SQL,时间很长。rn
QT如何结束一个线程
从QObject继承<em>一个</em>类,将<em>线程</em>需要实现的功能在这个类<em>里面</em>实现,然后新建<em>一个</em><em>线程</em>,再moveToThread到这个<em>线程</em>执行,但是当操作完成之后,<em>如何</em>让<em>线程</em><em>结束</em>呢?我需要<em>结束</em><em>线程</em>以释放资源,但是<em>线程</em>貌似还在exec()中,不会自动<em>结束</em>,但是我使用quit(),或者exit(0),或者terminate(),都出现程序崩溃,不知道该<em>如何</em>正常<em>结束</em><em>一个</em><em>线程</em>。
如何等待一个线程结束
现在我做<em>一个</em>图像处理系统。图像处理是这样的:rn1.先开<em>一个</em><em>线程</em>进行某一项图像处理(输入<em>一个</em>文件,生成<em>一个</em>处理后的图像文件)。rnrn2.待处理<em>结束</em>后把处理后的图像文件显示在客户区。rnrn 我的想法是这样的:rn1.CreateThread开<em>线程</em>rnrn2.通过OpenThread获取进程句柄rnrn3.WaitforsingleObject来等待<em>线程</em><em>结束</em>。rnrn 现在的问题是我还是不知道<em>线程</em>什么时候<em>结束</em>。因为WaitForSingleObject的用法rnrnDWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds);参数hHandle是<em>一个</em>事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但时间事件还是无信号状态则返回WAIT_TIMEOUT。rnrn 我不能设置等待时间,因为处理大图像和处理小图像的时间是不一样的。如果参数dwMilliseconds为INFINITE时函数将直到相应时间事件变成有信号状态才返回,否则就一直等待下去,直到WaitForSingleObject有返回直才执行后面的代码。这里的相应时间事件变成有信号状态才返回呢?可以理解为<em>线程</em><em>结束</em>吗?
如何立即结束一个线程
<em>如何</em>立即<em>结束</em><em>一个</em><em>线程</em>? 本文是作者在实际经验中的心得与体会,开发环境为苹果系统。如果有更好的方式请留言,高手请忽略。转载请注明作者以及出处。 背景平时开发中经常会有这么个需求:实现在<em>线程</em>中循环执行一些指令,每次循环间隔n秒。那么问题来了,<em>如何</em>能够做到立即<em>结束</em>这个<em>线程</em>?我目前只用GCD,有人可能会说用dispatch_suspend(),这个方法必须和dispatch_resume()成对使用,而
如何结束一个网络线程
我有<em>一个</em><em>线程</em>,do....while.本来在while条件语句里用了<em>一个</em>全局事件来<em>结束</em><em>线程</em>。但是后来发现,如果select()语句正在执行,那么这个时候用户要等上select的时间才可以<em>结束</em><em>线程</em>。于是我设计了另外<em>一个</em><em>线程</em>,rnKillThread()rnrnwaitforsingleobject(hRequestExitEvent,INIFINITE);rn//开始<em>结束</em>那个网络<em>线程</em>。rnrn有没有其他方法?
std::thread(线程
转自:https://www.cnblogs.com/whlook/p/6573659.html 创建<em>线程</em> 创建<em>线程</em>比较简单,C++提供头文件thread,使用std的thread实例化<em>一个</em><em>线程</em>对象创建。 std::thread 在 #include 头文件中声明,因此使用 std::thread 时需要包含 #include 头文件。 #include&amp;lt;iostream&amp;gt...
C++11线程:thread头文件
C++<em>11</em>多<em>线程</em>:头文件std::thread<em>线程</em>构造(constructor)欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成<em>如何</em>改变文本的样式插入链接与图片<em>如何</em>插入一段漂亮的代码片生成<em>一个</em>适合你的列表创建<em>一个</em>表格设定内容居中、居左、居右SmartyPants创建<em>一个</em>自定义列表<em>如何</em>创建<em>一个</em>注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML ...
C/C++线程退出的四种方法
想要终止<em>线程</em>的运行,可以使用以下方法: <em>线程</em>函数返回(最好使用该方法)。 同<em>一个</em>进程或另<em>一个</em>进程中的<em>线程</em>调用TerminateThread函数(应避免使用该方法)。 通过调用ExitThread函数,<em>线程</em>将自行撤消(最好不使用该方法)。 ExitProcess和TerminateProcess函数也可以用来终止<em>线程</em>的运行(应避免使用该方法)。 下面将详细介绍终止<em>线程</em>运行的方法:1-4,并说明线...
线程退出方法
<em>线程</em>停止方法:1.stop(不推荐使用)2.使用interrupt()退出<em>线程</em>,再根据interrupted()或者isInterrupted()来判断是否<em>线程</em>状态为停止,return与抛异常来推出<em>线程</em>;3.在睡眠中退出<em>线程</em>;Thread.sleep(),在interrupt()退出<em>线程</em>,会报错,退出<em>线程</em>。使用interrupt()退出<em>线程</em>:public class MainThread exte...
如何结束一个循环线程?
我写了这样<em>一个</em>类:rnrn构造函数里启动两个<em>线程</em>rn析构函数里<em>结束</em><em>线程</em>rn两个<em>线程</em>都是一样的,很简单,循环判断<em>结束</em>条件。rnrn出现的问题是总是只有<em>一个</em><em>线程</em>能<em>结束</em>(不定),而无论是否<em>结束</em>,<em>线程</em>返回状态总是rnSTILL_ACTIVE。rnrn我的程序什么地方错了,正常的<em>结束</em>循环<em>线程</em>的方法是怎样的。rnrn谢谢!rnrn——————————————————————————————————————————————rn附程序rnrnMuitiThread_T::MuitiTrnhread_T()rnrn m_bIsRun=true; // <em>线程</em>起始条件rn m_pThread1=AfxBeginThread(func1, &m_bIsRun);rn m_pThread2=AfxBeginThread(func2, &m_bIsRun);rnrnrnMuitiThread_T::~MuitiThread_T()rnrn DWORD rev=1;rn HANDLE handle1=m_pThread1->m_hThread;rn HANDLE handle2=m_pThread2->m_hThread;rn m_bIsRun=false; // <em>线程</em><em>结束</em>条件rn Sleep(1000);rn if(!::GetExitCodeThread(handle1, &rev)||rev==STILL_ACTIVE)rn rn TerminateThread(handle1, 0);rn rn if(!::GetExitCodeThread(handle2, &rev)||rev==STILL_ACTIVE)rn rn TerminateThread(handle2, 0);rn rnrnrnUINT func1(LPVOID pParam)rnrn while(*((bool*)pParam))rn rn rn return 0;rnrnrnUINT func2(LPVOID pParam)rnrn while(*((bool*)pParam))rn rn rn return 0;rnrnrn
如何强制结束一个线程?
在网络编程中,我起用了<em>一个</em>新的<em>线程</em>来阻塞式的处理客户端的连接,现在我要在主<em>线程</em>中关闭这个新的<em>线程</em>,调用了<em>线程</em>类的About()方法,但是无效,请问各位,有什么解决的办法?
如何立即结束一个线程
大家好,我遇到了<em>一个</em>问题需要解决。rnrn在我做的<em>一个</em>应用中用到了多<em>线程</em>,这些<em>线程</em>分别执行一些数据库的事务操作。由于程序是与另<em>一个</em>A系统在一台机器上运行的,所以当A系统特别繁忙的时候,就要暂停这个程序的执行。我打算暂停这个程序的时候[color=#FF0000]立即[/color]把所有的<em>线程</em>终止,当<em>线程</em>正在执行事务操作的时候,先roolback然后再终止,请问该怎么做到?rnrnrn<em>线程</em>要做的事情大概是这样:rn[code=Java]public Task implements Runnable rnrn public void run() rn // 数据库操作rn rnrn[/code]
如何安全结束一个线程
描述:rnrn主<em>线程</em>A, 然后新起<em>一个</em>工作<em>线程</em>B, rnrn//主<em>线程</em>Arnmain()rnrn beginthreadex(NULL, FunB,...);rnrnrn//工作<em>线程</em>BrnUINT FunB()rnrn //分配内存rn 。。。。rnrn while(1)rn rn //开始计算,每次需要计算5分钟rn rn //释放内存rnrnrnrn现在当要关闭程序的时候,<em>如何</em>安全的关闭B<em>线程</em>呢?不要有内存泄露。 不可能使用waitfor....等待的,谁也不会等5分钟再关。
请教线程结束的一些问题
<em>线程</em>关闭时,看到有函数 rn1.ExitThread()rn2.closeHandle()rn有什么区别吗?ExitThread中的参数 退出码 是<em>如何</em>定义的?rnrn我使用GetExitCodeThread获取<em>一个</em>正常运行<em>线程</em>的退出码是259(我用%d打印出来的),看到大家写的多是一些宏定义,这些在什么地方定义的?为什么会是269而不是其他值呢?rnrn我在<em>线程</em>中使用return 0;也使<em>线程</em>退出了,此时的退出码是0 ,rnrn我是否可以使用GetExitCodeThread来检测<em>一个</em><em>线程</em>的状态,看网上有些人说这样不够全面,不是很懂,请高手解释一下。
线程退出
#include &amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;amp;lt;pthread.h&amp;amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;amp;lt;unistd.h&amp;amp;amp;amp;amp;gt; void *sub_thread(void *p) { int i = 0; int
python pyqt5 怎样暂停和退出指定线程
-
Linux线程退出方式总结
在编写多<em>线程</em>代码时,经常面临<em>线程</em>安全退出的问题。 一般情况下,选择检查标志位的方式: 在<em>线程</em>的while循环中,执行完例程后,都对标志位进行检查,如果标志位指示继续执行则再次执行例程,如果标志位设置为退出状态,则跳出循环,<em>结束</em><em>线程</em>的运行。这个标志位需要主<em>线程</em>(或其他<em>线程</em>)设置,设置后,主<em>线程</em>调用pthread_join接口进入休眠(接口参数指定了等待的<em>线程</em>控制指针),子<em>线程</em>退出后,主<em>线程</em>会接收到
线程退出的几种方法
1.run运行完成后退出(安全的)。2.在thread的实现类中设置done的flag标志,在<em>线程</em>的run方法中的循环中轮询该flag决定何时退出。(安全的)。这种方法退出<em>线程</em>的时候有时会带来一定的delay,例如<em>一个</em>在循环中读取socket流的<em>线程</em>,不是立即退出而是需要完成该次读取后,重新在进入下次循环时查看到flag标志时才会真正退出。3.通过在另一<em>线程</em>中调用该<em>线程</em>对象的interrupt() ,它可以完成2相同的功能,也会在<em>线程</em>对象中设置<em>一个</em>标志标识该<em>线程</em>已经被中断
线程退出问题
在MFC中,我创建<em>一个</em>工作者<em>线程</em>,该<em>线程</em>主要用来处理<em>一个</em>时间很长的操作,但是在该<em>线程</em>处理这个操作的时候,外部有可能通过菜单进行强制中断,此时我要<em>如何</em>去将这个<em>线程</em>最快的<em>结束</em>掉呢。 简单说明:<em>线程</em>中不是由
请教:线程结束的问题
BOOL TerminateThread(rn HANDLE hThread, // handle to the threadrn DWORD dwExitCode // exit code for the threadrn);rn请问各位高手,在这个函数中的参数DWORD dwExitCode 表示什么意思,应<em>如何</em>获得这样的参数?谢谢rn
JAVA里面如何一个线程死亡或结束
JAVA<em>里面</em><em>如何</em>让<em>一个</em><em>线程</em>死亡或<em>结束</em>
如何结束线程一个线程
我在程序中启了若干个<em>线程</em>,<em>线程</em>函数里有互斥访问,可能是这个原因,<em>线程</em>比较多的时候(如100个)总有几个<em>线程</em>没<em>结束</em>,如果想在主<em>线程</em>中<em>结束</em>没有<em>结束</em>的<em>线程</em>怎么办?(可能是因为互斥的原因有的<em>线程</em>没被唤醒)用TerminateThread函数不会释放<em>线程</em>的堆栈调用不安全,有其他方法吗?rn<em>线程</em>函数如下:rnUINT CMainFrame::GetHttpFile(LPVOID pParam)rnrn::InterlockedIncrement(&m_lThreadCount);rnrn...rnrng_mutex.Lock() ;rnm_arWorkingUrl.Add(m_arUrl[iUrlId]) ;rnm_arWorkingBrief.Add(m_arBrief[iUrlId]) ;rnint i = m_pSearchResultView->GetListCtrl().GetItemCount();rnm_pSearchResultView->GetListCtrl().InsertItem(i,m_arUrl[iUrlId]) ;rnm_pSearchResultView->GetListCtrl().SetItemText(i,1,m_arBrief[iUrlId]) ;rng_mutex.Unlock();rnrn::InterlockedDecrement(&m_lThreadCount);rnrnreturn 0 ;rnrnrn创建<em>线程</em>代码如下:rnm_pThread[m_iThreadId] = AfxBeginThread(GetHttpFile,m_pThreadParams[m_iThreadId]) ;
怎样结束一个线程请教高手。
请问在MFC中,如果<em>一个</em><em>线程</em>正在等待如:WaitForSingleObject中,怎样合理的终止他,rn不用Terminate.....
java线程的取消与关闭
目录 1.任务取消       1.1通过volatile类型的域来保存取消状态 1.2通过 future 的cancel取消<em>线程</em> 1.3使用interrupt()方法中断当前<em>线程</em>  1.4使用shutdown()和shutdownNow()   1.4.1 shutdown()   1.4.2 shutdownNow() 1.5使用stop方法终止<em>线程</em>  2.停止基于<em>线程</em>的服务...
线程退出方式
一:void pthread_exit(void * retval); int pathread_join(pthread_t th,void * thread_return); int pthread_detach(pthread_t th); pthread_exit(value); value可填0,1,2等值规定<em>线程</em>的退出状态 pthread_join(...
linux下的线程的创建退出及回收
1.<em>线程</em>相关的概念: 程序:二进制程序放置在存储媒介中(硬盘,光盘,软盘等)以物理文件形式存在。 进程:程序被触发后,执行者的权限与属性,程序的程序代码与所需数据等都会被加载到内存中,操作系统并给与这个内存内的单元<em>一个</em>标识符(PID),可以说,进程就是<em>一个</em>正在运行中的程序。 <em>线程</em>:<em>线程</em>是进程的<em>一个</em>实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位
线程退出的几种方式
使用volatile类型的域来保存取消状态因为volatile本身特性,每次修改都会立刻刷新到缓存中,这样就可以保证<em>线程</em>任务可以及时看到下面代码示例,在<em>线程</em>运行一秒后取消任务:public class PrimeGenerator implements Runnable{ private final List primes = new ArrayList<>(); private
线程无故退出
背景:<em>一个</em>程序(基于DLG)通过调用第三方提供的接口,进行读卡 附注:这个程序时通过两个COM口,来读卡的,两个COM口是轮换着读卡(不管当前有没有在读卡或者出现异常) 问题:在这个程序启动后,有时候
怎样结束一个线程
主程序中,我启动<em>一个</em>Socket监听<em>线程</em>rnTHREADINFOSTRUCT *tis=new THREADINFOSTRUCT;rnrntis->hWnd=m_hWnd;rntis->CLogHwnd=GetDlgItem(IDC_EDLog);rntis->someData="This is in a thread.";rnrnCWinThread *pThread = AfxBeginThread(Listen,(LPVOID)tis,THREAD_PRIORITY_NORMAL,0,0);rnrn怎样<em>结束</em>这个<em>线程</em>呢?rntis应该在什么时候释放??
怎样结束一个线程?
我用的是AfxBeginThread(FindDataThread,this,THREAD_PRIORITY_NORMAL);rn怎么<em>结束</em>它?rn我用了::AfxEndThread(0,TRUE)之后,全部都没了!!!
一个线程结束问题
初始化创建好A<em>线程</em>;rn主<em>线程</em><em>结束</em>A<em>线程</em>代码: rn SetEvent(hStopTreatA);rn SetEvent(hTreatA);rn while(WaitForSingleObject(hHaveStopA,INFINITE)==WAIT_OBJECT_0)rn rn CloseHandle(hTreatA);rn CloseHandle(hStopTreatA);rn CloseHandle(hHaveStopA);rn rnrnA<em>线程</em><em>结束</em>代码: rn while (WaitForSingleObject(hTreatA,INFINITE)==WAIT_OBJECT_0)// 开始执行某些操作rn rn UINT nExitCode =0;rn ResetEvent(hTreatA);rn if(WaitForSingleObject(hStopTreatA,0)==WAIT_OBJECT_0)rn rn ResetEvent(hStopTreatA);rn SetEvent(hHaveStopA);rn AfxEndThread(nExitCode);rnrn rn rn大部分时间都可以正常<em>结束</em><em>线程</em>,但是偶尔会发生程序不响应。rn好像加sleep可以解决,但是想知道具体原因,总觉得是while循环的问题。rn请高手指点!
怎么结束一个线程
用afxendthread?rn那个exit code起什么作用?
线程问题请教:(如何结束多个线程??)
我在对话框中的按钮单击函数OnButton1()中启动十个<em>线程</em>,当<em>一个</em><em>线程</em>(有可能已经完成了4个<em>线程</em>,还剩下6个<em>线程</em>正在运行)出错时,要求终止所有<em>线程</em>的执行?请问具体应该<em>如何</em>处理?rnCTest::OnButton1()rnrn PTHREADPARA p ;//<em>线程</em>参数rn p = new THREADPARA; rnrn for(i=0; i< 10; i++)rn rn AfxBeginThread(ZipThread1,(LPVOID)p);rn rnrn WaitForMultipleObjects(....rn delete p;rnrnrn子<em>线程</em>函数如下:rnUINT ZipThread1(LPVOID pParam)rn rn PTHREADPARA p;rn p=(PTHREADPARA1)pParam;rn .......//处理rnrn if(nErr ==0)rn ;rn else //处理失败rn rn //退出所有<em>线程</em>rn //<em>如何</em>处理??rn return 0;rn rn return 0;rn
线程关闭问题
this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管<em>线程</em>(非主<em>线程</em>),也无法干净地退出; Application.Exit();  强制所有消息中止,退出所有的窗体,但是若有托管<em>线程</em>(非主<em>线程</em>),也无法干净地退出; Application.ExitThread(); 强制中止调用<em>线程</em>上的所有消息,同样面临其它<em>线程</em>无法正确退出的问题; System.En...
linux 线程退出函数 pthread_exit()??
#include #include #include #include #include
pthread_cleanup_push()/pthread_cleanup_pop()的详解
刚练习<em>线程</em>的条件变量时碰到了这两个函数,关于这两个函数书上讲的比较模糊,所以在网上找到了一篇我感觉讲的很好的一篇文章,就是关于<em>线程</em>的终止,大概如下: 一般来说,Posix的<em>线程</em>终止有两种情况:正常终止和非正常终止。<em>线程</em>主动调用pthread_exit()或者从<em>线程</em>函数中return都将使<em>线程</em>正常退出,这是可预见的退出方式;非正常终止是<em>线程</em>在其他<em>线程</em>的干预下,或者由于自身运行出错(比如
线程全部退出
各位大侠,我在用C#多<em>线程</em>读取串口数据时,当运行一段时间后,系统输出 上百行<em>线程</em>退出提示,然后所有串口的数据都无法读取了,<em>请教</em>大家是什么原因?谢谢 提示如下:(我只复制了其中的一部分提示) <em>线程</em> 0x
线程的取消与关闭
<em>线程</em>的取消与关闭 1. 处理不可中断的阻塞 在Java库中,许多可阻塞的方法都是通过提前返回或者抛出InterruptedException来相应中断请求的,然而并非所有的可阻塞方法或者阻塞机制都能相应中断。如果<em>一个</em><em>线程</em>由于可执行同步的Socket IO或者等待获得内置锁而阻塞,那么中断请求只能设置<em>线程</em>的中断状态,除此之外没有其他任何作用。对于那些由于执行不可中断操作而被阻塞的<em>线程</em>,可以使...
如何安全的结束线程
使用hThread:=CreateThread(nil,0,@Fun,nil,0,ID);创建了<em>一个</em><em>线程</em>,Fun是个While死循环rn现在要<em>结束</em>hThread,然后重新hThread:=CreateThread(..@Fun..)rn在创建之前,怎么才能安全的<em>结束</em>并释放先前的<em>线程</em>资源啊?rnrnGetExitCodeThread(hThread,Code),只要hThread的<em>线程</em>还在运行,的Code就一定等于259么?我想用Code的值来判断hThread是否被异常<em>结束</em>了,不知道是不是这样的。。。
如何结束线程
<em>如何</em>从<em>线程</em>外部安全<em>结束</em><em>线程</em>
如何结束线程
Create<em>一个</em><em>线程</em>ThreadOperate后,rn用rn ThreadOperate.Terminate; rn ThreadOperate.Destroy; rn来<em>结束</em>总是出错的??rnrn<em>请教</em>。
如何结束阻塞状态的线程?
要完整的释放资源,因为<em>线程</em>控制了数据库连接,SOCKET和其他一些要释放的资源.
关于多线程安全退出和释放
在VCL中创建了多<em>线程</em>,我提前关闭了窗口,<em>线程</em>还在跑或者等待信号,我该怎么释放呢?
线程情况下,主线程先退出,子线程会被强制退出吗
原文地址已经找不到了 1、进程中<em>线程</em>之间的关系 <em>线程</em>不像进程,<em>一个</em>进程中的<em>线程</em>之间是没有父子之分的,都是平级关系。即<em>线程</em>都是一样的, 退出了<em>一个</em>不会影响另外<em>一个</em>。 但是所谓的"主<em>线程</em>"main,其入口代码是类似这样的方式调用main的:exit(main(...))。 main执行完之后, 会调用exit()。 exit() 会让整个进程over终止,那所有<em>线程</em>自然都会退出。
线程问题】关于如何退出正在进行的线程
public class TsetThread implement Runnable{ public void run(){ while(isStop){ fun1(); fun2(); fun3()
关闭线程的正确方法
<em>线程</em>在启动之后,正常的情况下会运行到任务完成,但是有的情况下会需要提前<em>结束</em>任务,如用户取消操作等。可是,让<em>线程</em>安全、快速和可靠地停止并不是件容易的事情,因为Java中没有提供安全的机制来终止<em>线程</em>。虽然有Thread.stop/suspend等方法,但是这些方法存在缺陷,不能保证<em>线程</em>中共享数据的一致性,所以应该避免直接调用。<em>线程</em>在终止的过程中,应该先进行操作来清除当前的任务,保持共享数据的一致性,然...
线程退出与资源回收
<em>线程</em>退出 单个<em>线程</em>可以通过3种方式退出,因此可以在不终止整个进程的情况下,停止它的控制流。 1)<em>线程</em>可以简单地从启动历程中返回,返回值是<em>线程</em>的退出码。 2)<em>线程</em>可以被统一进程中的其他<em>线程</em>所取消。 3)<em>线程</em>调用pthread_exit。 #include &amp;amp;lt;pthread.h&amp;amp;gt; void pthread_exit(void *rval_ptr); rval_ptr参数是一...
如何结束当前的线程
我新建了<em>一个</em><em>线程</em>用于完成一段程序,当执行完这段代码,我想同时杀掉该<em>线程</em>,该<em>如何</em>做到?rn例如:rnnewThread = new Thread(new ThreadStart(AAA));rn newThread.Name = "aaa";rn newThread.IsBackground = true;rn newThread.Start();rn如果在方法AAA中执行Thread.CurrentThread.Abort();是无法做到的,所以<em>请教</em><em>如何</em>执行完程序后,杀掉该进程,,谢谢
c#如何结束线程
c#应用程序中启动了多个<em>线程</em>,当应用程序退出时在系统进程中仍然存在,是不是要将全部<em>线程</em><em>结束</em>后才能退出应用程序?<em>如何</em><em>结束</em><em>线程</em>?
线程如何结束
我建立了<em>一个</em>UI,却不知道<em>如何</em><em>结束</em>他。rnPostQuitMessage()是在主<em>线程</em>中使用,还是在子<em>线程</em>中使用。rn我想在主<em>线程</em>中<em>结束</em>子<em>线程</em>,请问怎样做?rn我使用了<em>一个</em>静态变量,可是<em>线程</em>中的却总是不改变,不知道为什么?rn静态变量写在哪里?<em>线程</em>类的头文件,还是应用程序的头文件?rn请各位指点??
如何手动结束线程
下面是我创建的<em>一个</em>用户界面<em>线程</em>的一部分 ,rnrnCUIThread::CUIThread()rnrnrnrnCUIThread::~CUIThread()rnrnrnrnBOOL CUIThread::InitInstance()rnrn m_dlg.Create(IDD_DIALOG_SUNTRACE); rn m_dlg.ShowWindow(SW_SHOW); rn m_pMainWnd=&m_dlg; rn // TODO: perform and per-thread initialization herern return TRUE;rnrnrnint CUIThread::ExitInstance()rnrn m_dlg.DestroyWindow();rn // TODO: perform any per-thread cleanup herern return CWinThread::ExitInstance();rnrnrnrnrnrnrnvoid CYANYANDlg::OnButtonInterfaceDemo() rnrn // TODO: Add your control notification handler code herern AfxBeginThread(RUNTIME_CLASS(CUIThread)); 我是在这个地方开启的<em>线程</em>rnrnrnrn请问各位大侠 我怎么手动<em>结束</em>这个<em>线程</em>呢??我是菜鸟 学MFC不多久 忘给出详细的解答 先谢谢了rnrn
如何知道线程结束了?
<em>如何</em>知道<em>一个</em><em>线程</em><em>结束</em>了?假设:rnfor i:=0 to 99 dorn myThread:=TThread.Create(False);rnrn<em>如何</em>知道最后<em>一个</em><em>线程</em>执行完了!!!??
线程退出对子线程的影响
转载自:主<em>线程</em>退出对子<em>线程</em>的影响 对于程序来说,如果主进程在子进程还未<em>结束</em>时就已经退出,那么Linux内核会将子进程的父进程ID改为1(也就是init进程),当子进程<em>结束</em>后会由init进程来回收该子进程。 那如果是把进程换成<em>线程</em>的话,会怎么样呢?假设主<em>线程</em>在子<em>线程</em><em>结束</em>前就已经退出,子<em>线程</em>会发生什么? 在一些论坛上看到许多人说子<em>线程</em>也会跟着退出,其实这是错误的,原因在于他们混淆了<em>线程</em>退出和进程...
如何退出线程
      之前对于<em>线程</em><em>如何</em>退出一直不是特别清楚,以前发现用pthread_kill函数退出<em>线程</em>没有效果,今天看了一些别人的博客才发现<em>线程</em>退出的原理,而且pthread_kill函数只是向特定的<em>线程</em>发信号。下面是一些<em>如何</em>在死循环中<em>结束</em><em>线程</em>的方法。        第一:可以利用pthread_kill函数向<em>线程</em>发信号,而后在信号处理函数<em>里面</em>设置<em>一个</em>flag,当<em>线程</em>中检测到该该flag置位后退出死循...
Java如何正确退出线程
<em>线程</em>退出的方法有:* 1.使用共享变量(shared variable)发出信号,让<em>线程</em>自己退出。*该方法,它给予<em>线程</em>机会进行必要的清理工作,符合<em>线程</em>安全,可以使用。 2.使用强制退出方法–Thread.stop();3.使用状态+Interrupt().使用 Thread.Interrupt()或者套接字的close()方法,抛出异常InterruptedException,然后置位退出标志。
linux下 c中怎么让才能安全关闭线程
多<em>线程</em>退出有三种方式: (1)执行完成后隐式退出; (2)由<em>线程</em>本身显示调用pthread_exit 函数退出;     pthread_exit (void * retval) ;  (3)被其他<em>线程</em>用pthread_cance函数终止:     pthread_cance (pthread_t thread) ;  用event来实现。 在子<em>线程</em>中,在
如何结束这样的线程
<em>线程</em>Thread1 在多处启动了N个,现在要<em>结束</em>其中的某<em>一个</em>,已知此<em>线程</em>的HANDLE,要<em>如何</em><em>结束</em>?rn如果是只有<em>一个</em>启动,可以在<em>线程</em>运行的时候加个标志位并不停的检查,再<em>线程</em>外部改变这个标志位,当不等于某个值时退出,多个的情况要<em>如何</em>判断?rnps:不想使用TerminateThread,据说会造成内存泄漏。
如何安全结束线程
google了很多。但是好像都没说清楚。问题是这样rnrn主<em>线程</em>创建2个子<em>线程</em>。我现在想通过<em>一个</em>键把2个子<em>线程</em><em>结束</em>掉。我用了TerminateThread函数。内存没有释放。怎么才能安全<em>结束</em><em>线程</em>并使内存释放。rnrn<em>线程</em>内部有个计时器。还有全局个大数组 char cName[50000];
如何更好的结束线程
<em>线程</em>函数rnDWORD WINAPI RunClient(LPVOID lpParam)rnrnrn CUploadApp *app = (CUploadApp *)AfxGetApp();rn rn rn f* arg1=new f;//Õâ¸öfÊÇÎÒ¶¨ÒåµÄÈ«¾Ö½á¹¹Ìårn arg1=(f*)lpParam;rnrn CFTPClient c;rn rn c.Test(arg1,app->arguments.strFilePath,app->arguments.FileName, app->arguments.FileTitle,app->arguments.FileTab,app->arguments.CopyRight,app->arguments.FileType,app->arguments.FileExt);rn rnrnrnrnrn创建<em>线程</em>rnswitch (threadid)rnrncase 1:rnhThread1 = CreateThread( NULL, 0, RunClient, (void*)&app->arg[0], 0, &dwThreadId);rnrn break;rnrnrn case 2:rnhThread2 = CreateThread( NULL, 0, RunClient, (void*)&app->arg[0], 0, &dwThreadId);rnrn break;rn rn.....rn case 10:rn .....rnrnrnrnrn终止<em>线程</em>rnvoid CFTPClient::Cancel(int selete)rnrnrnrnrnswitch(selete) rnrncase 1:rn//在这里怎样终止<em>线程</em>啊rnrnrnrnrnbreak;rncase 2:rnrnbreak;rn.....rnrncase 10:rn .....rnrnrnrn怎样有效的终止<em>线程</em>啊,我是刚刚学习<em>线程</em>的,有不懂的地方还望大哥哥指点,rn
线程的主动退出机制
<em>如何</em>,在<em>一个</em><em>线程</em>中退出<em>一个</em><em>线程</em>,kill? 当然不是
如何正确退出线程
<em>线程</em>退出的方法有:   1.使用共享变量(shared variable)发出信号,让<em>线程</em>自己退出。     该方法,它给予<em>线程</em>机会进行必要的清理工作,符合<em>线程</em>安全,可以使用。 2.使用强制退出方法--Thread.stop(); 3.使用状态+Interrupt().使用  Thread.Interrupt()或者套接字的close()方法,抛出异常InterruptedEx
线程问题的核心: 怎么退出线程才是合适的----小话多线程(2)
作者:陈曦 日期:2012-8-5  16:13:36 环境:[Mac 10.7.1 Lion Intel i3 支持64位指令 gcc4.2.1 xcode4.2 苹果开源代码Libc-763.<em>11</em>]  转载请注明出处 每日总结:优秀的架构都是类似的,垃圾的架构一般都是<em>一个</em>原因:代码内部原理掌握得不够 Q1: main函数中最后用return 0; 和使用 exit(
C/C++中退出线程的四种解决方法
退出<em>线程</em>可以有四种方法: 1.<em>线程</em>函数的return返回(最好这样): 其中用<em>线程</em>函数的return返回, 而终止<em>线程</em>是最安全的, 在<em>线程</em>函数return返回后, 会清理函数内申请的类对象, 即调用这些对象的析构函数. 然后会自动调用 _endthreadex()函数来清理 _beginthreadex(…)函数申请的资源(主要是创建的tiddata对象). 2.调用 _endthreadex
线程退出】:VC线程安全退出的方法
1. 如果创建的<em>线程</em>属于阻塞类型的,比如
如何结束BackgroundWorker线程
[code=C#]rn /// rn /// 应用程序的主入口点。rn /// rn [STAThread]rn static void Main()rn rn Application.EnableVisualStyles();rn Application.SetCompatibleTextRenderingDefault(false);rn [color=#FF0000] Application.Run(new QTEST());[/color]rn rn[/code]rnrnBackgroundWorker 的 DoWork 事件<em>里面</em>的工作完成后,上面的语句就抛异常了rn调用的目标发生了异常 rnTargetInvocationException rn怎么解决rn在此<em>请教</em>各位朋友
如何结束等待和线程
我的<em>线程</em>是这样rn_UINT ThreadTest(LPVOID lparam)rnrn EventRegister = CreateEvent(NULL, TRUE, FALSE, "EventRegister");rn while(true)rn rn ::WaitForSingleObject(EventRegister, INFINITE);rn ...... rn rn return 0;rnrn 请问当程序被关闭的时候<em>如何</em><em>结束</em>这个无限期等待事件,和这个<em>线程</em>。因为每次关闭后总发现,这个程序仍然在系统进程<em>里面</em>,关不掉
如何“监听”线程结束
Class B extends Thread,在A类中使用b.start()来启动<em>线程</em>rn我想在B的run()方法<em>结束</em>之后,(立即)在A类中做一些事情,请问应该<em>如何</em>实现?
超级分区器下载
超级分区器 相关下载链接:[url=//download.csdn.net/download/a646825642/3776379?utm_source=bbsseo]//download.csdn.net/download/a646825642/3776379?utm_source=bbsseo[/url]
华为HG556A使用说明书--3G设置文档下载
华为HG556A使用说明书--3G设置文档 相关下载链接:[url=//download.csdn.net/download/aliumei/4409450?utm_source=bbsseo]//download.csdn.net/download/aliumei/4409450?utm_source=bbsseo[/url]
无线传感器网络中DV-Hop算法下载
此算法是无线传感器网络中的一种无需测距的定位算法,用matlab进行仿真,可得出结果 相关下载链接:[url=//download.csdn.net/download/kelly900316/4910237?utm_source=bbsseo]//download.csdn.net/download/kelly900316/4910237?utm_source=bbsseo[/url]
相关热词 c# 线程顺序 c#昨天当前时间 c# 多进程 锁 c#mysql图片存取 c# ocx 委托事件 c# 读取类的属性和值 c# out 使用限制 c#获取url的id c#怎么进行分页查询 c# update 集合
我们是很有底线的