在delphi中如何判断线程终止 [问题点数:50分,结帖人CSDN]

Bbs1
本版专家分:0
结帖率 100%
Bbs9
本版专家分:83373
Blank
进士 2007年 总版技术专家分年内排行榜第九
Blank
铜牌 2007年7月 总版技术专家分月排行榜第三
Blank
红花 2007年9月 Oracle大版内专家分月排行榜第一
2007年7月 Oracle大版内专家分月排行榜第一
2007年6月 Oracle大版内专家分月排行榜第一
2008年7月 Delphi大版内专家分月排行榜第一
2008年3月 Delphi大版内专家分月排行榜第一
2008年2月 Delphi大版内专家分月排行榜第一
2007年12月 Delphi大版内专家分月排行榜第一
2007年11月 Delphi大版内专家分月排行榜第一
2007年10月 Delphi大版内专家分月排行榜第一
2007年9月 Delphi大版内专家分月排行榜第一
2007年7月 Delphi大版内专家分月排行榜第一
2007年6月 Delphi大版内专家分月排行榜第一
2007年4月 Delphi大版内专家分月排行榜第一
2007年1月 Delphi大版内专家分月排行榜第一
Blank
黄花 2009年5月 Delphi大版内专家分月排行榜第二
2007年8月 Oracle大版内专家分月排行榜第二
2007年4月 Oracle大版内专家分月排行榜第二
2008年1月 Delphi大版内专家分月排行榜第二
2007年8月 Delphi大版内专家分月排行榜第二
2007年5月 Delphi大版内专家分月排行榜第二
2007年3月 Delphi大版内专家分月排行榜第二
2007年2月 Delphi大版内专家分月排行榜第二
Bbs2
本版专家分:101
Bbs1
本版专家分:70
Bbs2
本版专家分:162
Bbs5
本版专家分:2079
Bbs1
本版专家分:0
Bbs6
本版专家分:8226
Bbs8
本版专家分:33553
Blank
红花 2006年8月 Delphi大版内专家分月排行榜第一
2006年7月 Delphi大版内专家分月排行榜第一
Blank
黄花 2006年9月 Delphi大版内专家分月排行榜第二
2006年6月 Delphi大版内专家分月排行榜第二
Blank
蓝花 2006年5月 Delphi大版内专家分月排行榜第三
Bbs3
本版专家分:999
Bbs7
本版专家分:13594
Bbs2
本版专家分:150
Bbs7
本版专家分:10014
Blank
黄花 2007年11月 Delphi大版内专家分月排行榜第二
如何终止一个线程
一个<em>线程</em>,用来等待某事件的发生。rnrn其它<em>线程</em><em>如何</em>得知此<em>线程</em>是否<em>终止</em>,<em>如何</em><em>终止</em>此<em>线程</em>?rnrn
如何终止一个 线程
例如:rn 用AfxBeginThread(Thread1, pData);rn AfxBeginThread(Thread2, pData);rn AfxBeginThread(Thread3. pData);rnrn<em>如何</em>结束第一个<em>线程</em>
如何终止线程
在mfc应用程序中,使用AfxBeginThread创建一个<em>线程</em>,该<em>线程</em>中使用gsoap实现webservice服务。rn假设在webservice过程中需要耗时10秒。现在我关闭应用程序,但webservice尚未完成<em>如何</em>,<em>如何</em>强制使子<em>线程</em>退出,且没有内存泄露。目前使用TerminateThread函数,但存在内存泄露。因为该函数并未释放c++资源。目前我有一个想法是在子<em>线程</em>中使用try,catch。但<em>如何</em>使该<em>线程</em>抛出异常。
如何安全终止线程
<em>如何</em>安全<em>终止</em><em>线程</em>
如何终止多个线程
A资源里有A1, A2, A3...等数据rn<em>线程</em>B, C, D, E分别对A1执行加减操作,<em>如何</em>实现在B<em>线程</em>里如果发现A1=100就<em>终止</em>其他<em>线程</em>,同时使其他<em>线程</em>开始对A2数据进行处理?
如何正常终止线程???
我开了5个<em>线程</em>,每个<em>线程</em>都要处理许多包括数据库存储在内的大量操作,当我用.FREE<em>终止</em>时齐慢无比,甚至失去相应。于是我用了比较暴力的方法Terminate,但是经常提示出现错误。于是我想屏蔽掉错误就:rntryrnxc.Terminate;rnsleep(500);rnform1.Close;rnexceptrn application.Terminate;rnend;rn可是当处理量比较大的时候<em>终止</em>还是会出现错误!!!rn我到底应该怎么避免错误提示的出现呢?????
如何终止线程
我使用了TidTcpServer中的tcpServerExecute(AThread: TIdPeerThread)事件rn事件中有AThread.Connection.ReadLn,是以阻塞模式读取收到的数据,我<em>如何</em>用代码停止AThread.Connection.ReadLn的等待!
如何立即终止线程
在<em>线程</em>的 Execute 方法中这样写:rnwhile not Terminated dornbeginrn ...rn self.Terminate;rn ...rnend; rnrn但是用self.Terminate;不会立刻<em>终止</em>,我想在那个位置立刻<em>终止</em><em>线程</em>rn应该怎么做,并且要安全的<em>终止</em>.
如何终止线程池的线程
我想问下各位大大,假如<em>线程</em>池里有若干<em>线程</em>正在运行着,<em>如何</em>全都关掉?关掉后是否就表示从<em>线程</em>池中移除了?谢谢。。
如何终止线程??
<em>如何</em><em>终止</em>没有执行完毕的<em>线程</em>??rnrnJobThread.Abort()rnJobThread.Join()rnrn找了一些资料,试验了不少办法,窗体都Dispose了,可<em>线程</em>竟然还在。。。。崩溃。。。rn程序Application.exit之后在内存中都无法退出,只能结束进程。。。
如何正确终止线程
在对话框中新建了一个<em>线程</em>rn.hrnstatic DWORD WINAPI RecvVideoProc(LPVOID lpParameter);rn.cpprnSENDPARAM *pRecvParamVS=new SENDPARAM;rnpRecvParamVS->sock=m_socket_udpvs; rnpRecvParamVS->sockaddr=addrTo; rnHANDLE hThread3=CreateThread(NULL,0,SendVideoProc,(LPVOID)pRecvParamVS,0,NULL); rnCloseHandle(hThread3);rnrn我该<em>如何</em><em>终止</em>和重启<em>线程</em>呢?rn由于<em>线程</em>处理函数是static,不能访问变量,使用事件对象(通过SetEvent和ReSetEvent)不行,还有其它方法吗?
Android中线程终止
<em>线程</em>对象属于一次性消耗品,一般<em>线程</em>执行完run方法之后,<em>线程</em>就正常结束了,不能再次start,只能新建一个<em>线程</em>对象。 所以正常退出run方法,一般就能正常结束<em>线程</em>。在很多情况下,run中都有循环,所以我们只要跳出循环,让run方法执行完,也就正常<em>终止</em>了<em>线程</em>   对于<em>线程</em>的<em>终止</em>,经过查询资料,大部分人提到了三种方法,就先说这三种 1.使用标志位来退出 2.使用interrupt()方法(注...
delphi如何创建线程终止线程!我是菜鸟!
我要在dlephi中创建多个父<em>线程</em>,每个父<em>线程</em>又包含多个子<em>线程</em>,请指点!最好有代码!rn再,哪位朋友有关于多<em>线程</em>的资料,请提供一下!rn还有分送!rn谢谢了!
终止线程
private void Form1_Load(object sender, EventArgs e)rn rn ThreadListener = new Thread(new ThreadStart(UdpListen));rn ThreadListener.Start();//1rn rnprivate void button2_Click(object sender, EventArgs e)rn rn if (ThreadListener != null)rn if (ThreadListener.IsAlive)rn ThreadListener.Abort();//2rn rn我按button2的时候,<em>线程</em>ThreadListener没有<em>终止</em>.当我再发送数据的时候,他提示我<em>线程</em>正在<em>终止</em>.然后才<em>终止</em><em>线程</em>.rn当我把//2放到//1的后面的时候.就能直接<em>终止</em><em>线程</em>!这是怎么会事?
终止线程
我在启动<em>线程</em>时使用了tcpclient,我想强行关闭这个程序,但是<em>线程</em>怎么也关闭不了。怎么办啊?
线程终止
1创建两个java文件 第一个文件:MyThread.java package com.iba.cxx.web.controller.App; import java.util.Random; /** * Created by wz on 2017/12/13. */ public class MyThread extends Thread{ private boolea
线程终止??
写了个简单的登陆页面,响应登陆按钮事件如下实现rnrnprivate void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)rnrn //登陆验证rn tryrn rn rn string orgid;rn orgid=DeptInfo.SelectedValue;rn string pwd;rn pwd=PassWord.Text.ToString().Trim();rn string sqlstr="select * from organinfo where id="+Int32.Parse(orgid)+" and pwd='"+pwd+"'";rn DataSet ds=new cwb.DBOperat().getRsBySql(sqlstr);rn if(ds.Tables[0].Rows.Count>0)rn rn //写入Session对象rn Session["username"]=DeptInfo.SelectedItem.Text.ToString();rn Response.Redirect("DoLogin.aspx");rn rn elsern rn Message.Text="密码不正确!";rn rn rn rn catch(Exception ee)rn rn Response.Redirect("frmError.aspx?sel="+Server.UrlEncode(ee.Message.ToString())+"&des="+Server.UrlEncode(ee.Source.ToString()));rn rn rnrn rnrnrn但出现错误,错误提示rnMessage.toString()为mscorlib ee.Source.toString()为<em>线程</em>被<em>终止</em>,请问是什么问题,<em>如何</em>解决!rn
线程终止
<em>线程</em><em>终止</em> 进程的<em>终止</em>: 1.进程中的任意<em>线程</em>调用了exit、_Exit 或者 _exit,那么整个进程就会<em>终止</em>。 2.如果默认的动作是<em>终止</em>进程,那么发送到<em>线程</em>的信号也会<em>终止</em>整个进程。 <em>线程</em>的<em>终止</em>: 在不<em>终止</em>进程的情况下停止单个<em>线程</em>: 1.<em>线程</em>可以从启动例程中返回(return),返回值是<em>线程</em>的退出码。 2.<em>线程</em>可以被同一进程中的其他<em>线程</em>取消。 3.<em>线程</em>调用pthread_e...
线程终止??????????????
我有一个程序,程序初始化时构建了一个<em>线程</em>(一直运行),我需要在程序过程中,rn<em>终止</em>该<em>线程</em>运行,怎么做才可以达到目的,而不造成memory leak??rn请给出代码,我用TerminateThread()可是有memory leak,还有别的方法么?
线程(3) - 线程终止
你比其他Java程序员更优秀的原因,是你学习了这篇课程!nn本篇涵盖了Java的主要语法和核心概念:n(1)异常,抽象类,接口等语法概念 n(2)装箱拆箱,反射,<em>线程</em>、同步与通知,等Java里的基本机制n(3)Java文档及API的用法,命令行、jar文件的使用方法n(4)Eclipse的常用操作n(5)中文编码,文件读写,时间处理等技术nJava学习指南的后续篇章以此篇为基础展开讲解。
线程——终止线程
<em>终止</em><em>线程</em>(stop)<em>线程</em>中不推荐使用Thread.stop(),它会释放所有monitor。可能会导致数据不一致性。 例如:   当我们记录多条数据的时候:      数据1: Id=0,Name= Nliki;     数据2: Id=1,Name= Nliki_1;     数据3: Id=2,Name= Nliki_2;     ……当我们写入或者读取数据的时候,为了防止数据被多个<em>线程</em>修改,...
请教多线程如何终止另外的线程
请教一下, 我有一个主进程, 主进程中开启了多个<em>线程</em>, 每个<em>线程</em>都在进行网络通信. 但是我需要在点一个按钮的时候将这几个<em>线程</em>给<em>终止</em>掉.rn请教一下该怎么来做. rn因为这几个<em>线程</em>可能正在接收数据, 也可能正处于accept()调用中. 如果是在接收数据时倒还可以根据一个标记来让其退出, 但是处于accept()状态时<em>如何</em>让其退出呢? rnTerminateThread()的话有些资源又不能够被释放掉.rnrn谢谢指教!
java中如何优雅的终止一个线程
/** * 优雅的中断一个<em>线程</em> */ public class ThreadInterrcupt { static class MyThread implements Runnable{ @Override public void run() { while (true){ if(Thread....
阻塞状态中的线程如何正常终止
项目刚刚遇到一个这样的问题: 在一个死循环中获取和处理一个队列(一个LinkedList),当空闲时,<em>线程</em>会阻塞在从LinkedList获取列表的地方(在一个Get方法中,使用ReentrantLock锁,如果当前LinkedList的size为0,则使用Condition的await()方法,让当前<em>线程</em>阻塞),此时想让该<em>线程</em><em>终止</em>时,我使用了Thread.join(),结果虚拟机dump抛出...
如何终止线程中的Socket侦听啊?
我在<em>线程</em>中的Run函数里有如下代码:rn CString sIP ="127.0.0.1";rn UINT nPort=6802;rn CSocket m_SendSock;rn while(WaitForSingleObject(m_EndHandle,10)==WAIT_TIMEOUT)rn rn m_ListenSock.Create(nPort,SOCK_STREAM,sIP);rn m_ListenSock.Bind(nPort-1,sIP);rn m_ListenSock.Listen(5);rn m_ListenSock.Accept(m_SendSock);rn bool bResult = true;rn m_ListenSock.Close();rn m_SendSock.Send(&bResult,sizeof(bool),0);rn m_SendSock.ShutDown();rn m_SendSock.Close();rn rn问题时是这样的,<em>线程</em>执行到 m_ListenSock.Accept(m_SendSock);rn就停止了,一直要等到有客户端连接时才继续执行!rn如果在没有客户端连接的情况下<em>如何</em>退出<em>线程</em>?rn我强制释放<em>线程</em>酒报系统错误!
在另外的线程中,如何中途终止异步调用?
在另外的<em>线程</em>中,<em>如何</em>中途<em>终止</em>异步调用?
Java中如何安全终止一个线程
在最初的JDK版本中,Thread类提供了一个<em>线程</em><em>终止</em>的方法stop()方法,但是现在在JDK源码中发现,stop()方法已经被废弃。主要原因是:stop()方法太过暴力。强制<em>终止</em>一个正在执行的<em>线程</em>。这样的话会造成一些数据不一致的问题。   现在常用的是<em>线程</em>中断的方法:严格的讲,<em>线程</em>中断不会使<em>线程</em>立即退出,而是给<em>线程</em>发送一个通知,告诉目标<em>线程</em>,有人需要你退出啦!至于目标<em>线程</em>接到通知后如果处理,...
java中如何终止一个线程
java中<em>如何</em><em>终止</em>一个<em>线程</em>?
C# 中如何安全的终止Thread线程
举个例子,一个多<em>线程</em>下载器,每个<em>线程</em>下载一个文件,如下:rn[code=csharp]rnrnpublic static bool DownFile(string url, string filepath, int maxsize, bool allowAutoRedirect)rn rn if (!DownHelp.IsContinue) //一个静态对象rn rn return false;rn rnrn tryrn rn HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);rn request.AllowAutoRedirect = allowAutoRedirect;rn HttpWebResponse response = (HttpWebResponse)request.GetResponse();rnrn FileStream filestream = new FileStream(filepath, FileMode.Create);rnrn Stream stream = response.GetResponseStream();rnrn byte[] buff = new byte[maxsize];rnrn int n = 0;rn while ((n = stream.Read(buff, 0, buff.Length)) > 0 && DownHelp.IsContinue)rn rn filestream.Write(buff, 0, n);rn rnrn response.Dispose();rn filestream.Dispose();rn stream.Dispose();rnrn return true;rn rn catch(Exception e)rn rn return false;rn rn rnrn[/code]rnrn当有多个<em>线程</em>,比如100个同时下载文件的时候,网络也不是很好的时候,rn假如我要<em>终止</em>所有<em>线程</em>,直接调用Abort()虽然也可以,但是不安全。rnrn但是如果是如上,用一个标识来<em>判断</em>是否执行也会有问题。rn比如,request.GetResponse()在网络慢的时候,会一直处于等待状态,这时候就算IsConitnue为false, 也对它无效,rn要一直等到它获取结束后,执行后面的代码才会停止。rnrn读取流写到文件也会有类似的情况。rnrn我试过,有时候request.GetResponse()会等待几分钟,同时100个<em>线程</em>的话,就不能很快的结束所有<em>线程</em>了。rnrn我也想过把<em>线程</em>和一些字段绑定成一个类,在需要等待的时候,就标记它在等待,需要结束的时候就调用Abort,rn至于其他的,因为没有处于等待状态,所以很快就会因为IsContinue是false就退出了这个方法,所有代码执行完之后,rn<em>线程</em>就被回收了。rnrn还有什么更好的办法吗?
Java中如何正确的终止线程
1、Java中API自带的stop()方法,来<em>终止</em><em>线程</em>         查阅JDK,不难发现Thread提供了一个stop()方法,但是stop()方法是一个被废弃的方法。为什么stop()方法被废弃而不被使用呢?原因是stop()方法太过于暴力,会强行把执行一半的<em>线程</em><em>终止</em>。这样会就不会保证<em>线程</em>的资源正确释放,通常是没有给与<em>线程</em>完成资源释放工作的机会,因此会导致程序工作在不确定的状态下。关于使用
java中 如何终止一个线程
java中 使用interrput <em>如何</em><em>终止</em>一个<em>线程</em>
Java中如何优雅正确的终止线程
Java中<em>终止</em><em>线程</em>的方式主要有三种:1、使用stop()方法,已被弃用。原因是:stop()是立即<em>终止</em>,会导致一些数据被到处理一部分就会被<em>终止</em>,而用户并不知道哪些数据被处理,哪些没有被处理,产生了不完整的“残疾”数据,不符合完整性,所以被废弃。So, forget it!2、使用volatile标志位看一个简单的例子:首先,实现一个Runnable接口,在其中定义volatile标志位,在run()
如何终止系统进程中的某个线程
//获取系统进程信息rnSystem.Diagnostics.Process[] allProcesses = System.Diagnostics.Process.GetProcesses();rn//<em>终止</em>系统进程rnallProcesses[0].Kill;//这里为了简单说明,当然有很多写法。rnrn下面<em>如何</em><em>终止</em>系统进程中的某个<em>线程</em>?当然我们可以获取到<em>线程</em>的一些相关信息,但至于停止这个<em>线程</em>还不知道用什么办法!rn还有另附加问题,<em>如何</em>获取<em>线程</em>的Name?rnallProcesses[0].Threads[0].?rnrnCtrl+Alt+Del 打开的Windows任务管理器中有4个Tab 应用程序/进程/性能/联网rn在应用程序中有很多任务(也可以说一些<em>线程</em>吧)是属于某个进程的rnMS是<em>如何</em>获取这个<em>线程</em>的名称以及强制关闭这个<em>线程</em>的呢?rn不知道大家谁做过这方面的,希望能一起讨论下rn
得到一个线程的指针,如何终止线程
得到一个<em>线程</em>的指针,<em>如何</em><em>终止</em><em>线程</em>?rnrn在<em>线程</em>类里加入一个方法:rnrnvoid CMyThread::DoEnd()rnrn AfxEndThread(-1,true);rnrnrn然后在外面调用:rnrn MyThreadPtr->DoEnd();//但执行到此时出错!!!rnrn是什么问题的???rnrn
一个线程如何终止另一个线程
#include rn#include rn#include rn#include rn#include rn#include rnrnrntypedef struct arg ARG;rnstruct argrn int arg_1;rn;rnrnvoid *f(void *arg)rnrnrn pthread_t tid;rn tid=pthread_self();rn int i;rnrnrn ARG *p=(ARG *)arg;rn for(i=0;iarg_1==i) rn printf("%d\n",p->arg_1);rn pthread_exit((void*) 1);rn [color=#FF0000]//我想此时把<em>线程</em>2也<em>终止</em>了,如果用pthread_cancel的话不知道另外一个<em>线程</em>的id[/color]rn elsern return NULL;rn rn rnrnrnrnint main()rnrnrn pthread_t tid_1,tid_2;rn ARG myarg_1,myarg_2;rn int err;rn void *res_1,*res_2;rnrn tid_1=pthread_self();rnrn myarg_1.arg_1=10;rnrnrn //创建第一个<em>线程</em>rn err=pthread_create(&tid_1,NULL,f,(void *)&myarg_1);rn if(err!=0)rn printf("%s\n",strerror(err));rn exit(1);rn rnrnrn tid_2=pthread_self();rn myarg_2.arg_1=1000000;rnrnrn //创建第二个<em>线程</em>rn err=pthread_create(&tid_2,NULL,f,(void *)&myarg_2);rn if(err!=0)rn printf("%s\n",strerror(err));rn exit(1);rn rnrnrnrn err=pthread_join(tid_1,&res_1);rn err=pthread_join(tid_2,&res_2);rnrn return 0;rnrnrn比如上面的例子,我调用两个<em>线程</em>分别传两个不同的值过去,我想在满足10的时候就<em>终止</em>所有<em>线程</em>,<em>终止</em>该<em>线程</em>本身,我知道,但是<em>终止</em>另外一个<em>线程</em>怎么做。
如何根据线程名称,终止指定线程
<em>如何</em>根据<em>线程</em>名称,<em>终止</em>指定<em>线程</em> 请教
如何终止一个线程呢???
请教两个关于<em>线程</em>方面的问题:rnrn1:<em>线程</em>中有terminate,可是不是立即<em>终止</em>的。请问用什么办法立即停止一个<em>线程</em>的执行呢?rnrn2:我在Tmythread.execute中,运行从1到1000000的数,我想创建100个<em>线程</em>,每个<em>线程</em>运行10000个,<em>如何</em>实现?rnrn多谢了,分不够再开贴。
请问,如何终止一个线程
用如下代码创建一个<em>线程</em>,请教<em>如何</em><em>终止</em>这个<em>线程</em>:rn// 必须是这个格式rnDWORD WINAPI TimerThread(LPVOID pTimer)rnrn rn while (TRUE)rn rn if(g_bStart)rn rn CStatic* pStaticTimer =(CStatic*)pTimer;rnrn CString str;rn pStaticTimer->GetWindowText(str);rn int nTimer = atoi(str);rn str.Format("%d", nTimer +3);rnrn pStaticTimer->SetWindowText(str);rn rn rnrn return 0;rnrnrnrnrnvoid CMultiThreadDlg::OnBtnStart() rnrn // TODO: Add your control notification handler code herern DWORD dwThread;rn g_bStart = TRUE;rnrn // 另外开一个<em>线程</em>计时rn m_hTimerThread = CreateThread(NULL, 0, TimerThread, (LPVOID)&m_staticTimer,rn NULL, &dwThread);rnrn
如何终止和暂停线程和进程?
程序起动时启动了一个<em>线程</em>和进程!rnThread 和ProgressrnThread t=new Thread(new ThreadStart(listDir));rnrnProcess p = new Process(); rn程序退出后这两个东东还在运行,怎么样在程序退出时停止这两个东东!rn窗体上有一个暂停按钮,按下暂停时可不可以暂停进程的执行?
.net1.0 精简版如何终止线程
在.net1.0 精简版里<em>如何</em><em>终止</em><em>线程</em>。
如何安全地强制性终止线程
1/安全,要求释放资源rn2/强制性<em>终止</em>。rn请注意我的线城是通过rnwith TIThread.Create(tempId,TF) dorn OnTerminate := ThreadDonern来建立的,似乎不容易得到handle?
如何启动和终止线程的思考
QT提供了QThread类来实现多<em>线程</em>编程。QThread::terminate()用来结束子<em>线程</em>。假如调用terminate()后,子<em>线程</em>不是立刻停止,程序员还可以调用QThread::wait()等待子<em>线程</em>结束,才进行后面的操作。在以前的项目里,我经常使用terminate + wait的组合来结束<em>线程</em>。但是前几天发现,这样的组合并非总能成功:子<em>线程</em>有时不能及时结束,造成主<em>线程</em>也卡在wait(...
如何终止一个java线程
<em>线程</em>,相比进程更加轻量级,系统开销更小,但过多的<em>线程</em>因系统资源占用多,导致系统性能下降,因此有关<em>线程</em>的管理不得不去做。在java中<em>如何</em>创建<em>线程</em>呢?相比这样的文章都已多如牛毛,笔者在这里只简单的重述一下。常见的有两种方式:1.继承Thread类并重写run方法2.实现Runnable接口,通过 new Thread(runnableImpl)方式第2中方式显得更加的灵活,也是经常被采用的方式,第一种...
如何终止一个托管线程?????
有下面一段代码建立的托管<em>线程</em>:rn[code=C#]rnThread tr = new Thread(new ThreadStart(delegate()rn rn //txtWR txtwr = new txtWR();rn rn xq.reuser(userName,Pw);//主要工作都在这个函数里面的rn rn userZhiZ += 1;rn userCount += 1;rn rn myIni.wrIni("oldhang", userName);rn mangLu = false;rn rn ));rn tr.Start();rn[/code]rnrn现在我的窗口增加了一个 停止按钮,想在任何时刻停止程序运行。但是不知道该用什么办法来停止这个<em>线程</em>?
如何终止运行时间超时的线程
因为现在我要监控远程的一个方法,当这个方法执行超过一段时间时,我就要抛弃这个任务.[color=#FF0000][b]那个方法我不能修改[/b][/color]rn测试代码 rn[code=java]rnpublic class MyThreadPoolrnrn private static MyThreadPool myThreadPool = null;rn /*** <em>线程</em>的最小数*/rn private static int corePoolSize = 5;rnrn private static ThreadPoolExecutor executor = new ThreadPoolExecutor(corePoolSize, corePoolSize*2,10,TimeUnit.SECONDS, rn new ArrayBlockingQueue(corePoolSize),new ThreadPoolExecutor.AbortPolicy());rn private MyThreadPool()rn rn rn public static MyThreadPool getInstance()rn if(null == myThreadPool)rn System.out.println("MyThreadPool is creating!");rn myThreadPool = new MyThreadPool();rn rn rn return myThreadPool;rn rnrn/**rn * 执行任务rn */rn public void exeWork(final MyWork work,int availableTime)rn rn FutureTask future = new FutureTask(new Callable()rn public Boolean call()rn return work.doSometing();rn rn rn );rn executor.execute(future);rn tryrn future.get(availableTime, TimeUnit.SECONDS);rn catch(ExecutionException e1)rn e1.printStackTrace();rn rn catch(InterruptedException e2)rn e2.printStackTrace();rn catch(TimeoutException e3)rn System.out.println("执行任务超时!");rn finallyrn future.cancel(true);rn closeExecutor();rn rn rn rn public void closeExecutor()rn if(executor != null && executor.getActiveCount() ==0 && executor.getQueue().isEmpty())rn executor.shutdown();rn rn rn rn rn public static int getCorePoolSize() rn return corePoolSize;rn rnrn public static void setCorePoolSize(int corePoolSize) rn MyThreadPool.corePoolSize = corePoolSize;rn rn rn rnrnrn[/code]rnMain 方法rn[code=java]rnrnpublic static void main(String[] args)rn rn MyThreadPool threadPool = MyThreadPool.getInstance();rn int availableTime = 5;rn rn MyWork b = new BWork();rn threadPool.exeWork(b, availableTime);rn[/code]rn[code=java]rnpublic class BWork implements MyWorkrn public boolean doSometing()rn rn System.out.println("B starting...");rn //模拟远程的方法 最坏的情况是死循环rn while(true)rn rn rn rn rn rnrnrn[/code]
如何终止指定名称的线程?
有一个多<em>线程</em>应用,用户接入,则开一个<em>线程</em>处理,在用户开<em>线程</em>的过程中,可以设置<em>线程</em>名,问题是,服务器端<em>如何</em>关闭指定名称的<em>线程</em>?rnrn问题2:在服务器端的程序中,假设为某个接入用户开启的<em>线程</em>名是newthread.Name = "aaaaaaa"; //<em>线程</em>名rn我在另一个程序中,对服务器进行<em>线程</em>查询,确不能得到<em>线程</em>名!代码如下:rn Process[] allproc = Process.GetProcesses(); //得到系统进程信息rn foreach (Process proc in allproc)rn rn if (proc.ProcessName.ToLower().CompareTo(sss) == 0)rn rn ProcessThreadCollection mythreads = proc.Threads;rn foreach (ProcessThread pt in mythreads)rn rn rn ThreadState ts = pt.ThreadState;rn listBox1.Items.Add("<em>线程</em>ID:"+pt.Id.ToString());rn listBox1.Items.Add("<em>线程</em>状态:"+ts.ToString());rn listBox1.Items.Add(" ");rn rn rn rn在pt中,没有<em>线程</em>名的属性,有<em>线程</em>ID,但是我不能得到<em>线程</em>ID和<em>线程</em>名的对应关系,所以我不能关闭<em>线程</em>rn<em>如何</em>得到他们的对应关系?rn我现在要实现的功能是:如果某个用户长时间不与服务器交互,服务器要踢他下线,问题是不不知道服务器端的N个<em>线程</em>哪个与之对应,无法关闭<em>线程</em>,我必须要得到<em>线程</em>名与用户的对应关系,之后,关闭指定名称的<em>线程</em>!!!!
C++的线程如何终止
C++创建了一个<em>线程</em>,在另一个<em>线程</em><em>如何</em>禁止该<em>线程</em>。rn我的功能是:在一个<em>线程</em>PALYPOC的功能是相当于一个播放的功能的,就是将五子棋的数据一个一个读出来,然后显示在棋盘上,相当于回顾一样。(一次播放可以会执行5.6分钟左右)rnrn但是如果我不在想回顾了,我点击重新游戏的时候,我想<em>终止</em>这个<em>线程</em>怎么办。rnrn1 网上说,正常返回,等函数正常返回,就要把这个回顾全部放完才返回,我黄花菜都凉了。rnrn2 还有用什么TerminateProcess的,这个是不建议用的,不会释放占用内存,我用这个函数以后,下次在打开这个文件就打不开了。rnrn3 还有说用个信号量或者表示符的,让我在<em>线程</em>里面做死循环,这个有问题的,(1)这个就意味这,要结束这次循环后才能退出,但是实事上,我只执行一次而已。 (2)我那代码很多的,我怎么用死循环搞啊rnrn还有没有更好的办法,麻烦有办法的就说一下吧,[color=#FF0000]不要说某某书籍有,哪个哪个视频有,直接说一下不行么,你说个视频,说个书籍,我回头还得自己找,还得重新看,你说一下就几分钟的事,这么折腾一点意义都没有。[/color]rnrn下面是我的那个<em>线程</em>的方法,可以不看,有兴趣的可以看看能不能用循环搞出来。rn[code=c]rn//播放<em>线程</em>rnDWORD WINAPI PlayProc(LPVOID lpParameter)rnrn DATA_PALY *playData=(DATA_PALY *)lpParameter;rn CFIVE_CHESSDlg *p=(CFIVE_CHESSDlg*)AfxGetMainWnd();rn CFile file(playData->Filename,CFile::modeRead);rn CArchive textfile(&file,CArchive::load);rn CString data;rn textfile>>data;rn SplitStr dataArray;rn dataArray.SetSplitFlag("+");rn dataArray.SetSequenceAsOne(true);rn dataArray.SetData(data);rn dataArray.GetSplitStrArray(p->n_SaveData_Step);rn int Count=p->n_SaveData_Step.GetSize();rn for (int i=0;in_SaveData_Step[i]);rn temp.GetSplitStrArray(stepData);rn int x=atoi(stepData[0]);rn int y=atoi(stepData[1]);rn int color=atoi(stepData[2]);rn int step=atoi(stepData[3]);rn CPoint point(x,y);rn p->P_DrawChess(point,color);rn Sleep(playData->speed);rn CSound sound;rn sound.PlayMusic(F_MUSIC_PUTCHESS,1);rn CString Step;rn Step.Format("第 %d 手",step+1);rn p->GetDlgItem(IDC_STEP)->SetWindowText(Step);rn rn if (p->n_SaveData_Step[Count-1]=="BLACK")rn rn AfxMessageBox("本轮黑棋获胜");rn rn elsern rn AfxMessageBox("本轮白棋获胜");rn rn p->GetDlgItem(IDC_TIPS)->EnableWindow(FALSE);rn return 0;rn[/code]
关于如何终止线程的问题
有一个主程序和三个MFC DLL A,B,C;在A DLL中的主界面中有两个按钮:开始和停止。点击“开始”按钮,调用C DLL中的函数并且在C DLL的该函数中产生一个<em>线程</em>(用AfxBeginThread产生,<em>线程</em>函数为static 型),该<em>线程</em>函数又调用B DLL中的函数执行(该函数执行一组动作,处理的数据对象为一个全局char型数组)。rn程序一执行(点击开始按钮),整个界面就冻住,停止按钮按不了,必须等这组动作执行完才行!rn请问,我要怎样做才能中途停止????rn急,望各位大虾不吝赐教,谢谢!!!!
java 如何安全终止线程
我在做android的时候,遇到一个问题,描述如下:rn 我有一个Button,一点击这个Button,就开始倒计时,比如20,19,18....0;当我再次点击这个button的时候,<em>如何</em><em>终止</em>前面那个<em>线程</em>,让倒计时从新由20,19,18...这样倒计时?rn
终止线程如何unlock CriticalSection
定义全局变量:rnCCriticalSection cs;rn在一个<em>线程</em>里面:rncs.Lock();rn这里执行一些操作rncs.Unlock();rnrn问题是外部有些情况会<em>终止</em>这个<em>线程</em>,没有cs.Unlock(); 这样再次启动就无法执行了rn怎么解决?
如何终止之前所开的线程?
在Button1_Click()方法中,第一次点击时开了一个<em>线程</em>t,当再次点击时,如果t还没有运行完,就<em>终止</em>它,可以实现吗?应该怎么写代码?第一次点击时的启动<em>线程</em>方法如下:rn[code=C#]rn private void button1_Click(object sender, EventArgs e)rn rn //这里添加代码:<em>判断</em>如果t在运行,则<em>终止</em>trn Thread t = new Thread(m);rn t.Start();rn rn void m()rn rn[/code]rn谢谢指教!
如何同时终止多个线程
我用for循环生成了10个<em>线程</em>,如下rnfor (int i=0; i<10; i++)rnrn Thread testThread = new Thread(new ThreadStart(aaa));rn testThread.Start();rnrn我想同时<em>终止</em>这10个<em>线程</em>应该怎么办呢?大家帮忙想想办法。
如何线程终止时释放资源?
如题
Java如何正确终止线程
javaAPI中提供了如下几个方法: stop()、suspend()、stop()、interrupt()、interrupted()几个方法,其中stop()和suspend()是java的废弃方法 那么为什么这两个方法被被废弃了呢? stop():强行停止指定的正在运行的方法,会导致<em>线程</em>中的资源不能进行正确的处理和释放,从而使程序输出意想不到的结果。 suspend():<em>线程</em>暂停,达到一个...
Java并发编程-如何终止线程
我们知道使用stop()、suspend()等方法在<em>终止</em>与恢复<em>线程</em>有弊端,会造成<em>线程</em>不安全,那么问题来了,应该<em>如何</em>正确<em>终止</em>与恢复<em>线程</em>呢?这里可以使用两种方法: 1.使用interrupt()中断方法。 2.使用volatile boolean变量进行控制。 在使用interrupt方法之前,有必要介绍一下中断以及与interrupt相关的方法。中断可以理解为<em>线程</em>的一个标志位属性,
如何终止线程,释放内存
代码如下:rn[WebMethod]rnpublic void createThread()rnrn for(int i=0;i);rn rn rn public void dispose()rn rn 我想在这个函数中<em>终止</em>该<em>线程</em>,释放内存。怎么办?rn 这里好像不能用mythread。Abort()。可书上都是这么释放<em>线程</em>的。rn
java多线程编程--如何终止一个线程
1. Thread.stop()函数 stop()函数<em>终止</em><em>线程</em>就像是强行拔掉电源线关机一样,可能会带来未知风险,因此目前不再推荐使用这种方式。请忘记它吧~~ 2. 改变标志变量状态 通常我们会在<em>线程</em>中使用一个标志变量来控制<em>线程</em>的运行,如: public class TestCallable implements Runnable { private boolean ru
Java如何优雅的终止线程
简单介绍了下<em>线程</em>,并列出了<em>终止</em><em>线程</em>的几种方法,希望大家可以参考参考,不足之处望指正。
判断并等待所有线程终止
假定<em>线程</em>池中有一些<em>线程</em>,一些是已<em>终止</em>的<em>线程</em>,一些是未<em>终止</em>的<em>线程</em>。rn希望当所有这些<em>线程</em>都<em>终止</em>后退出主<em>线程</em>,主<em>线程</em>的代码该<em>如何</em>写?rn主要是两点,一点是<em>判断</em><em>线程</em>是否<em>终止</em>,另一点是等待<em>线程</em><em>终止</em>。rnrn请给出具体代码。
怎么判断一个线程是不是正常终止
我的意思是rn在某个<em>线程</em>中我捕获了一些异常,怎么在该<em>线程</em>结束后<em>判断</em>该<em>线程</em>是不是正常结束的呢。rnPS:你可能不知道是什么异常,反正<em>线程</em>是结束了。rn谢谢。
JAVA中终止线程的方法
<em>终止</em><em>线程</em>主要有两种方式: 1、自然<em>终止</em>:<em>线程</em>正常运行任务完毕。 2、外部干涉<em>终止</em>方法: 1)在<em>线程</em>类中定义一个<em>线程</em>体的使用标识。 2)在<em>线程</em>体中使用该标识。 3)提供对外的方法可以该表该标识。 4)外部根据条件调用3)中方法即可<em>终止</em><em>线程</em>。 public class StopDemo01 { public stat...
J2me中终止线程问题
我写了一个web service的手机客户端,访问服务器都要建立新的<em>线程</em>以防止程序死掉。但是当程序<em>终止</em>的时候,有些一直运行的<em>线程</em>(如状态刷新)却找不到<em>终止</em>方法,直接对出程序会出现一大堆<em>线程</em>异常。请问哪位有解决方法啊?
delphi如何防止终止进程?
如题:<em>delphi</em><em>如何</em>防止<em>终止</em>进程?
线程外面终止线程的问题
UINT COPration ::Mythread(LPVOID pParam)//COPration 是纯虚基类rnrn COPration *P = (COPration *)pParam;rn while(true)rn rn if(p->m_Com.GetBufferCount>0)rn return 0;rn rnrnbool COldmeter::Read()//COldmeter是从COPration派生来的 rnrn .rn .rnCWinThread *pThread = AfxBeginThread(Mythread,this);rn .rn .rn if(pThread->m_hThread != NULL)rn rn DWORD ExitCode;rn GetExitCodeThread(pThread->m_hThread,&ExitCode);rn ExitThread(ExitCode);rn rn .rn .rnrn上述部分是在动态库里面实现。主应用程序通过接口类调用动态库里面的函数。rn问题是,但我在调用ExitThread(ExitCode);结束<em>线程</em>的时候,我的主应用程序界面竟然消失了,结果在任务管理器里面发现主应用程序却还在执行。rn 这是怎么回事啊,我只是想结束本<em>线程</em>而已,不知道我的处理有问题没有。大家有什么解决办法没有????
关于线程的挂起和终止线程
在windows里一个<em>线程</em>负责跟本机中的某个进程交互,如果对应的进程关闭了,而且这个进程以后可能要用也可能不用(视用户的需求而定),我现在有两个方案rn1,关闭这个<em>线程</em>,用的时候重新创建相应的<em>线程</em>,。rn2,挂起此<em>线程</em>,用的时候直接唤醒就行了。rn这两个哪个比较好呢,第一种的话,执行起来比较方便,但是在服务中有创建<em>线程</em>的记录,我用一个数组来存放创建过的<em>线程</em>,要是频繁关闭和创建,那个数组就会不断变大,否则还得处理那个数组。rn第二种的话,只要判定一下此进程还是原来那个进程,唤醒相应的<em>线程</em>就行了。不过如果对应的进程关了,长时间不用的话,<em>线程</em>在这里挂着会不会相当于增大内存和资源的占用,比如开始有好多进程和服务交互,然后那些进程全都关了,并好长时间不用,就会有好多<em>线程</em>在那儿挂着,我就是不知道<em>线程</em>挂起的时候是不是还会占用内存什么的。rn有没有了解这一块的大神来指导一下。
【Linux】线程控制-线程终止
如果需要只终⽌某个<em>线程</em>⽽不终⽌整个进程,可以有三种⽅法: 1. 从<em>线程</em>函数return。这种⽅法对主<em>线程</em>不适⽤,从main函数return相当于调⽤exit。 #include &amp;lt;stdio.h&amp;gt; #include&amp;lt;unistd.h&amp;gt; #include&amp;lt;stdlib.h&amp;gt; #include&amp;lt;pthread.h&amp;gt; void* thr_start...
delphi如何判断手机号码
<em>delphi</em>中一个页面要添加一个手机号码然后保存,在这个过程中<em>如何</em><em>判断</em>他是符合手机号码规律的?
C# 如何挂起线程、休眠线程终止线程(源码例)
通过一个例子来说明<em>线程</em>的多种操作,hehe
CSharp多线程程序设计;如何解决线程中System.Timers.Timer.Elapsed事件终止,以及终止其所属的线程
private void button1_Click(object sender, System.EventArgs e)rnrn DataBaseProcedure dbp0=new DataBaseProcedure(label1);rn Thread t0=new System.Threading.Thread(new ThreadStart(dbp0.timerThead));rn t0.Start();rn t0.Join();rnrnpublic class DataBaseProcedurernrn [ThreadStatic] protected System.Timers.Timer myTimer;rn [ThreadStatic] protected int intLoop=10;rn [ThreadStatic] protected Label _label;rn public DataBaseProcedure(Label label)rn rn this._label=label;rn rn public void timerThead()rn rn this.myTimer=new System.Timers.Timer();rn this.myTimer.Elapsed+=new System.Timers.ElapsedEventHandler(Operation);rn this.myTimer.Interval=1000;rn this.myTimer.Enabled=true;rn if(intLoop<0)rn rn this.myTimer.Enabled=false;rn this.myTimer.Dispose();rn return;rn rn rn
Java线程终止状态
Java<em>线程</em>通过启动run执行<em>线程</em>内容。run执行过程,可能是正常结束,也可能是抛出异常。 通常检测<em>线程</em>的执行状态通过 循环检测Thread.isAlive()来<em>判断</em><em>线程</em>的执行状态。。。可通过getState=TERMINATE<em>判断</em><em>线程</em>结束。但无法区分正常还异常<em>终止</em>。 1.通过<em>线程</em>池管理<em>线程</em> 2.callable.返回退出状态 3.UncaughtExceptionHandler
终止线程的源代码资源
<em>终止</em><em>线程</em> <em>终止</em><em>线程</em> <em>终止</em><em>线程</em> <em>终止</em><em>线程</em> <em>终止</em><em>线程</em>
破解万象2008免费教程下载
大家好! 我是无名小草 QQ770236027 今天给大家讲解下“网吧会员免费充值软件”的使用教程。 我不多打字了大家看我操作 软件需要注册码 这里有破解万象2008后台的密码账号 看操作 好了进去了 继续看操作 先看下我的余额15.4元 我找下我的账号 17.8是我上机时的密码 我们修改下看看 再看下余额18.4元 加了3元 大家还有不懂的联系我的QQ770236027 可以测试一下 这个软件时利用万象2008的漏洞绝对的安全,100%成功! 好了就到这里了 相关下载链接:[url=//download.csdn.net/download/maay2006/3236288?utm_source=bbsseo]//download.csdn.net/download/maay2006/3236288?utm_source=bbsseo[/url]
生命安全FLASH动画作品下载
全国文明风采竞赛作品,生命安全FLASH动画作品 相关下载链接:[url=//download.csdn.net/download/fentfent/4380167?utm_source=bbsseo]//download.csdn.net/download/fentfent/4380167?utm_source=bbsseo[/url]
二维码制作软件(中文版)下载
全中文版的二维码制作工具,实用又方便,赶快试试吧!谁用谁知道…… 相关下载链接:[url=//download.csdn.net/download/lijhqq/4568276?utm_source=bbsseo]//download.csdn.net/download/lijhqq/4568276?utm_source=bbsseo[/url]
我们是很有底线的