美文网首页
跟诸子学游戏 C#线程

跟诸子学游戏 C#线程

作者: 诸子百家谁的天下 | 来源:发表于2018-04-26 16:45 被阅读26次

命名空间 using System.Threading; using System.Threading.Tasks;

Thread(带参函数/不带参函数),delegate指针;Thread .tart(传参/不传参)调用;Thread .Join 函数意思是阻塞调用线程,直到某个线程终止时为止;Thread.CurrentThread.Abort();引发线程上的ThreadAborting异常,终止当前线程,除非你对abort函数非常了解,不然最好不要使用;Thread.ThreadState 判断指定线程状态 ;Thread.IsThreadPoolThread 是否是线程池中的线程.Thread.Priority 优先级;Thread.Suspend 挂起;

线程池:

1 线程池的线程不能设置名字(导致线程调试困难)。2 线程池的线程都是background线程3 阻塞一个线程池的线程,会导致延迟。4 可以随意设置线程池的优先级,在回到线程池时改线程就会被重置。5.每个线程还消耗(默认)约1 MB的内存,使用线程池创建线程的方法:Task/ThreadPool.QueueUserWorkItem/Asynchronous delegates/BackgroundWorker.

锁:

①加锁使多个线程同一时间只有一个线程可以调用该方法,其他线程被阻塞。同步对象的选择:使用引用类型,值类型加锁时会装箱,产生一个新的对象。使用private修饰,使用public时易产生死锁。(使用lock(this),lock(typeof(实例))时,该类也应该是private)。string不能作为锁对象。不能在lock中使用await关键字.private static object _locker = new object();lock (_locker)共享数据的操作 (Static Method),使用静态锁确保所有实例排队执行.private object _locker2=new object();lock(_locker2)共享数据的操作,非静态方法,是用非静态锁,确保同一个实例的方法调用者排队执行.lock其实是Monitors的简洁写法。②互斥锁(Mutex)互斥锁是一个互斥的同步对象,同一时间有且仅有一个线程可以获取它。可以实现进程级别上线程的同步。

子线程调用主线程:

定义代理:public delegate void SetValueHandler(string value);在子线程中: 

if(this.textBox1.InvokeRequired){ // 在子线程中调用此方法时,通过Invoke转成主线程执行  

//this.textBox1.Invoke(new SetValueHandler(updateUI), val);  //方式一:通过代理创建的方法更新界面

this.Invoke(newEventHandler(delegate{ textBox1.Text += val; }));//方式二:使用匿名代理来更新界面return;  }

使用BackgroundWorker类

相关文章

  • 跟诸子学游戏 C#线程

    命名空间 using System.Threading; using System.Threading.Tasks...

  • 跟诸子学游戏 c#内存分配

    内存分区: 1:栈 在需要的时候,由编译器分配,在不需要的时候,自动清除.通常认为 EBP和局部变量,函数的调用...

  • 跟诸子学游戏 游戏流程

    游戏项目开发流程: 一般一个手机游戏开发都需要立项,在立项确定开发之前一般会进行市场调研。 1.市场调研的工作一般...

  • 跟诸子学游戏 动画

    在unity3d中,有6种动画可以使用 animation animator TimeLine 自定义动画(如:定...

  • 跟诸子学游戏 特效

    三要素:①:元素②:节奏③:色彩.

  • 跟诸子学游戏 Java多线程通信1

    同步锁池:同步锁必须选择多个线程共同的资源对象. 当前生产者在生产数据的时候(先拥有同步锁),其他线程就在锁池中等...

  • 跟诸子学游戏 游戏系统介绍

    1:渲染系统 2:输入系统 3:声音系统 4:物理系统 5:动画系统 6:人工智能(AI)系统 游戏引擎包括:Un...

  • 跟诸子学游戏 游戏类型

    RPG游戏:角色扮演游戏.经典如最终幻想. ACT游戏:动作游戏,也包含(STG)“射击游戏”和(FTG)“格斗游...

  • 跟诸子学游戏 群组算法

    群组算法:表示一群动物的行为,需要设置一个目标点,主要有分离,队列,聚合3中状态; 分离:物体之间保持的距离较近,...

  • 跟诸子学游戏 Lua基础

    1:使用闭包创建迭代器 2:泛型for保存状态变量和控制变量,将状态变量传入迭代器,进行迭代,这个属于无状态迭代器...

网友评论

      本文标题:跟诸子学游戏 C#线程

      本文链接:https://www.haomeiwen.com/subject/gocmlftx.html