用多线程的经验总结 网
1.简要描述
一般来说,程序是一个过程,代码存在于过程中。进程本身不执行代码,但是线程执行代码。
一般来说,一个进程中只有一个线程。(商店只是老板娘。)
一个进程只是在内存中打开了一个空间。代码,图片。等等都存在于这个空间。要执行的代码线程。
默认情况下只有一个线程。
复制代码如下: system term . threading//由线程操作的类在此命名空间下。
2.前台线程和后台线程。
启动一个线程就是创建一个线程对象。
默认情况下,线程是前台线程。
在所有前台线程执行完毕之前,程序不会退出。
进程中的默认线程称为主线程或默认线程,或UI线程。
后台线程,只要所有前台线程结束,所有后台线程直接结束。
复制代码如下:Thread th=新线程(Sum);同名称=“线程1”;给一个线程一个名字。调试时可以在输出中看到具体的名称。第。IsBackground=true第。start();第。abort();强制终止线程。线程。睡眠(1000);以毫秒为单位暂停线程。threadcutth=thread。currentthread获取当前线程的引用。键入线程。文本框。CheckForIllegalCrossThreadCalls=false;//关闭对空间的跨线程访问检查。否则,将出现以下错误
3.螺纹再入
同一进程中的多个线程可以并发执行。
多个线程访问同一个资源,这可能会导致不同步。这叫做线程重入。
在这种情况下,它可以被锁定。
复制代码如下: private void count num(){ lock(this){ for(int I=0;我10000;i ) { int num=int。解析(文本框1。text . Trim());数量;文本框1。文本=数字。ToString();} } }
4.线程对象的本质(委托)
4.1无参数方法
需要传递委托对象。复制代码如下: thread start ts=new thread start(count num);线程th=新线程(ts);相当于Thread th=新线程(CountNum);本质是代表。(CountNum是非参数方法)4.2参数方法
如果需要传递参数方法。
ParameterizedThreadStart的委托对象是否已创建。
传递的参数在Start方法中传递;start方法有两个重载。
你知道中的多线程吗?网?如果你有任何问题,请留言。
版权声明:用多线程的经验总结 网是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

















