摘要:本文主要向大家介绍了C#编程实现子线程Action发送到主线程执行,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
本文主要向大家介绍了C#编程实现子线程Action发送到主线程执行,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
今天去面试..面试官竟然说子线程的Action不能发送到主线程执行... ...废话不说上干货
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Threading;
public class ActionDemo : MonoBehaviour {
public static List> actionlist = new List>();
void Start()
{
actionlist.Add( curname => {
Debug.Log ("action1 :" + curname);
});
actionlist.Add( curname => {
Debug.Log ("action2 :" + curname);
});
//开启子线程
Thread th = new Thread(ThreadChild);
th.Start();
}
static void ThreadChild()
{
//循环三次 关闭线程,养成良好习惯
for (int i = 0; i < 3; i++) {
//锁住保证线程安全
lock(actionlist){
actionlist.Add( curname => {
//这里填子线程中 想去主线程调用的代码 ,例如改变UI
Debug.Log ("ThreadChild :" + curname);
});
Thread.Sleep(1000);
}
}
}
void Update(){
//遍历action 在Update中调用action自然是主线程调用
for (int i = 0; i < actionlist.Count; i++) {
ActionDemo.actionlist [i] (Time.time+"");
}
actionlist.Clear();
}
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C#.NET频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号