关于终止一个阻塞的线程的问题!!

问题描述

请教各位高手,我想在主线程中调用一个线程BB中使用到一个方法C;C是SOCKET通信方面的一个方法,一旦调用C,C就会一直阻塞程序,等待消息来到。我想在一段时间后如果没有消息来到,我就结束掉B,可是用ABORT()方法并不能终止掉阻塞的线程啊所以想问问该用什么方法?privatevoidbutton1_Click(objectsender,EventArgse){labelControl1.Text="数据上传中,请稍后!";workerThread=newThread(newupdata);workerThread.Start();timer1.Start();}}publicvoidnewupdata(){byte[]aa=newbyte[1024];datalen=RecvData(aa);这句话就是SOCKET的阻塞方法}然后我想在timetiker时间中判断datalen的长度如果不符合则结束线程不知道结束语句怎么写了:(

解决方案

解决方案二:
哎难道也没有人知道么?就是停止一个阻塞了的线程我也是试了很多办法才来求助的啊
解决方案三:
说说你是怎么调用ABORT()的。ABORT()抛出的异常只能在本线程内捕获。
解决方案四:
线程好难,学习中
解决方案五:
使用socket的异步方法
解决方案六:
我是这样用的try{if(workthread.threadstate==isrunning)workthread.abort();workthread.join();}catch(THreadExceptionee){messsagebox.show();}catch(Exception){}
解决方案七:
哎知道异步调用是可以的就是为了不去改SOCKET如果没有办法的话只有写成异步的了
解决方案八:
自己调用Abort,会引发一个错误的。要处理下。否则老是EXCEPT。

时间: 2024-10-30 23:07:45

关于终止一个阻塞的线程的问题!!的相关文章

终止阻塞的线程

线程状态     我们知道,一个线程可以处于以下四种状态之一:     1. 新建(New):当线程被创建时,它只会短暂地处于这种状态.此时它已经分配了必须的系统资源,并执行了初始化.此刻线程已经有资格获取CPU时间了,之后调度器将把这个线程转变为可运行状态或阻塞状态.     2. 就绪(Runnable):在这种状态下,只要调度器将CPU时间片分给线程,线程就可以运行.也就是说,在任意时刻,线程可以运行也可以不运行.     3. 阻塞(Blocked):线程能够运行,但有某个或多个条件阻止

android中如何实现弹出一个阻塞线程的对话框?谢谢,大神们。

问题描述 android中如何实现弹出一个阻塞线程的对话框?谢谢,大神们. RT. 先说一下我的结构,我做了一个等待的Activity,所有可能耗时的操作都会跳到这个Activity.这个Activity中有一个Service层基类的引用(多态).会通过这个引用调用具体Service中的某个耗时的方法.当这个方法返回true的时候,这个页面就会关掉(finish())自己. 现在我需要在这个方法中弹出一个类似于对话框的东西,我希望这个对话框可以阻塞当前进程,等我操作完毕之后才继续执行后面的代码.

android-完全终止一个Android线程问题

问题描述 完全终止一个Android线程问题 一个服务在后台运行它自己的线程.我想终止那个服务包括它的线程.我创建了这样的线程并运行它: public class DaemonService extends Service { private DaemonThread thread; class DaemonThread extends Thread { public void run() { runDaemon(mArgv.toArray() mConfig); } } public void

一个简单的线程管理方式。

文章来源: www.17173.com 周末,总是有点那么的无聊.闲来没事,想想每次自己要进行多线程编程时的痛苦,也并借机考虑设计了一个简单的线程管理方式.      没什么好说的,首先想想线程的创建,每次都要CreateThread,传递一堆的参数,还得没事查查MSDN,唉,效率低啊.反正,对于我来说,线程基本都是缺省优先级.缺省安全的.不如把这些一起封装了.     不多说,C++不用对象机制用什么?顺便借鉴一下java.来个实际线程就是run,启动采用start. class thread

异步任务如何阻塞主线程

问题描述 异步任务如何阻塞主线程 我在欢迎页面调用的百度定位的API,它是异步的任务,有时如果网络不够快,下面的代码继续执行时就会挂APP,因为欢迎页跳转后,后面的Activity有用到返回的数据,请问下大神有应该怎么阻塞它呢?我想让它返回结果后在继续执行我下面的代码 解决方案 不要阻塞主线程,不然异步就没意义了,还不如同步.你可以用事件通知主线程,主线程之后的代码放在事件中. 解决方案二: 就是主线程的跳转界面的代码放在事件回调中 解决方案三: 你可以把activity中需要返回数据部分的UI

我想我一个关于java线程的问题

问题描述 我想我一个关于java线程的问题 假如有T1,T2,T3三个线程 T1,T2在等待状态(wait),现在T3想唤醒T2,不管T1,怎么做,怎么用notify T1,T2在睡眠状态(sleep),现在想用T3打断T2(interrupt),我该怎么使用interrupt 在线等,谢谢大神们 解决方案 进程还是线程?是一个问题!进程还是线程?是一个问题!如何停止一个Java线程 解决方案二: notify是会唤醒所有的此对象的wait线程的,但ReentrantLock,ReadLock,

关于winform中多线程调用AX控件中的方法会阻塞UI线程的问题

问题描述 本人新手...winform中子线程调用AX控件中的某个耗时的方法(3.4秒)会阻塞UI线程,请问有没有办法在子线程中创建AX控件,让子线程去执行AX控件中的方法呢? 解决方案 解决方案二:你可以尝试直接在新的线程里执行该方法,不行的话只能由控件编写者提供异步的方法解决方案三:winform中子线程调用AX控件中的某个耗时的方法(3.4秒)会阻塞UI线程既然你是在子线程里调用,为什么会阻塞UI线程?放出你的代码来解决方案四:控件是vc写的,拖到form上的,SCM_Card_Chb是控

求高手点拨一个:“Java线程类”的问题.

问题描述 求高手点拨:一个子线程中,应该不能再架子线程了吧..?怎么下面的代码:publicvoidrun(){newThread(newRunnable(){publicvoidrun(){while(true){try{System.out.println(ssoo1.read(so3)+"----------------------");}catch(IOExceptione1){e1.printStackTrace();}}}}).start();System.out.prin

jsp页面开启一个新的线程访问session域

问题描述 jsp页面开启一个新的线程访问session域 jsp页面开启一个新的线程,新线程要执行的动作得用到session,求大神支招,能做到么? 解决方案 HttpSession session = request.getSession(); 解决方案二: 当然可以啊,就像在servlet中开启一个线程是一样的呀. 解决方案三: 可以,session就是会话的意思,你可以在页面取到他啊啊 解决方案四: 可以,只要将session对象传入即可.