// Observable.Start:开启一个新的线程流
// WhellAll:当所有的XXX执行完之后,再去执行YYY
// ObserveOnMainThread:在主线程观察
public class TestScript : MonoBehaviour
{
void Start()
{
var threadA = Observable.Start(() =>
{
// 使子线程休眠3秒
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(3));
Debug.Log($"threadA:线程ID:{Thread.CurrentThread.ManagedThreadId}");
return 1;
});
var threadB = Observable.Start(() =>
{
// 使子线程休眠2秒
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(2));
Debug.Log($"threadB:线程ID:{Thread.CurrentThread.ManagedThreadId}");
return 2;
});
Observable.WhenAll(threadA, threadB).ObserveOnMainThread().Subscribe(x =>
{
// 这里是主线程
Debug.Log($"WhenAll:线程ID:{Thread.CurrentThread.ManagedThreadId}");
Debug.Log(x[0] + ":" + x[1]);
});
}
}
009-返回主线程
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本文主要举例说明GCD里的死锁场景,分析造成死锁的原因以及解决方案 在开始说GCD死锁之前,我们先了解一下GCD的...
- Android中UI线程会自动给我们建立一个looper,但是looper中的loop方法是个死循环.为什么我们在...
- 1、进程内存访问原理对普通进程来说,它能看到的其实是内核提供的虚拟内存,这些虚拟内存还需要通过页表,由系统映射为物...
- 这样的log是没有错误的。 主线程中的log会提示news为空指针 子线程无法更新UI众所周知,需要通过Handl...
- 关于为什么AsyncTask一定要在主线程中创建? 我们知道AsyncTask中UI的更新是通过InternalH...