博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity3d 线程安全问题
阅读量:5798 次
发布时间:2019-06-18

本文共 1055 字,大约阅读时间需要 3 分钟。

hot3.png

unity3d 线程安全问题

gui相关的操作必须在Update 里调用,所以一般的解决办法是使用一个隐藏的MonoBehaviour,非UI线程里想做的操作都注册到这个隐藏的MonoBehaviour里

using UnityEngine;using System;using System.Collections;using System.Collections.Generic;namespace wlgame{		public delegate void GUITask ();			public class TaskExecutorScript : MonoBehaviour		{						private Queue
 TaskQueue = new Queue
 (); private object _queueLock = new object (); // Update is called once per frame void Update () { lock (_queueLock) { if (TaskQueue.Count > 0) TaskQueue.Dequeue () (); } } public void ScheduleTask (GUITask newTask) { lock (_queueLock) { if (TaskQueue.Count < 100) TaskQueue.Enqueue (newTask); } } }}
AfterResponseFuntion afterFun = delegate(System.Object result) {						taskExecutor.ScheduleTask (new GUITask (delegate {								EditorUtility.DisplayDialog ("title", "aaaaaaa", "abc", "edf");						}));				};  				Communication.SendScore2Server (afterFun);

转载于:https://my.oschina.net/u/1431106/blog/223104

你可能感兴趣的文章
SpringCloud微服务架构解决方案(三)--springcloud负载均衡Ribbon
查看>>
javascript 实现拖拽-jquery实现
查看>>
angular之cloak
查看>>
redis单机安装
查看>>
ubuntu 无法进入系统问题之一
查看>>
《Java数据结构和算法》简单排序冒泡排序
查看>>
Java Bean
查看>>
关于《Land of Lisp》的翻译说明
查看>>
Jenkins构建服务器与应用服务器 SSH免密码登录
查看>>
C++11中的智能指针
查看>>
阿里云服务器 Linux 格式化和挂载数据盘
查看>>
Simple Ajax get
查看>>
vue实现距离购买日期提示
查看>>
java用ssl和url共同类实现访问某https网站
查看>>
return fun() 阻止行为
查看>>
php新手入门 20191112
查看>>
DNS缓存中毒是怎么回事?
查看>>
1113还没有写完
查看>>
PHP:函数方法命名前加 & (and )符号的目的(转)
查看>>
矛盾的根源
查看>>