安卓多线程崩溃

安卓多线程崩溃,第1张

安卓的线程分为UI线程和工作线程,一般的只有主线程属于UI线程,其它新建的线程都属于工作线程,对UI的 *** 作只能够放到UI线程中进行,当然SurfaceView比较的特殊,对SurfaceView的UI *** 作是可以放到工作线程中进行的,楼主的这种情况一般可以通过在主线程中建立一个 Hander,然后再在工作线程中通过这个Handler发送消息,主线程的Handler的回调事件收到了消息后,在回调事件中调用;ToastmakeText(MainActivitythis, i, ToastLENGTH_SHORT)show(); 就可以了,

希望对你有用,我是ndk吧吧主,有问题可以到ndk吧留言,谢谢!

public class ThreadTest {

static int i=0;

public static void main(String[]args){

//建立3个子线程,以i,i,n,m作为子线程是否结束的判断

//当所有子线程运行完才开始主线程

Systemoutprintln("主线程开始");

Thread t1=new Thread(){

public void run(){

Systemoutprintln("子线程1");

ThreadTesti+=1;

}

};

//开启线程1

t1start();

Thread t2=new Thread(){

public void run(){

try {

Threadsleep(1000);

} catch (InterruptedException e) {

eprintStackTrace();

}

Systemoutprintln("子线程2");

ThreadTesti+=1;

}

};

//开启线程2

t2start();

Thread t3=new Thread(){

public void run(){

Systemoutprintln("子线程3");

ThreadTesti+=1;

}

};

//开启线程3

t3start();

boolean res=true;

while(res){

//这里判断子线程是否运行完了

if(ThreadTesti==3){

Systemoutprintln("主线程结束");

res=false;

}

}

}

}

这个问题主要原因在线程设置和线程函数处理。

public partial class Form1: From

{

    Thread thread = null;

    Socket socket = null

    Socket listen = null;

    

    public Form1()

    {

        InitializeComponent();

        

        //初始化socket的代码略……

        

        thread = new Thread(ThreadStart(MyThread));

        //设置为后台线程!!!

        threadIsBackground = true;

        threadStart( );        

    }

}

private void MyThread()

{

    while(true)

    {

        try

        {

            socketListen(50);

            listen = socketAccept( );

            //其他代码略……

        } 

        catch{ }  

    }

private button1_Click(object sender, EventArgs e)

{

          if (thread == null && threadThreadState!=ThreadStateRunning)

            {

                MessageBoxShow("不处于监听状态");

                return;

            }

            if (threadIsAlive)

            {

                threadAbort();

            } 

            if (listener != null)

            {

                listenerStop();

            }

            label7Text = "监听停止";

}

以上就是关于安卓多线程崩溃全部的内容,包括:安卓多线程崩溃、代码中如何保证子线程崩溃时,主线程依旧正常工作、C#多线程,在调用thread.Abort();后WinForm总会卡死,不知为何等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9704283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存