ET 单线程同步OneThreadSynchronizationContext
单线程同步上下文,该类继承自SynchronizationContext,并实现了Post方法。
该类主要作用是将用于收发消息的多线程同步到主线程中;
类的结构:
- queue一个线程队列,用于存放其他线程的委托方法
- Post方法,用于多线程调用,在线程队列中存入多线程委托方法(该方法重写自SynchronizationContext类)
- Update方法,用于主线程调用,将线程队列中的方法出队并执行
通过上面一进一出,将多线程转换成单线程
这里简单介绍下SynchronizationContext
:
SynchronizationContext在通讯中充当传输者的角色,实现功能就是一个线程和另外一个线程的通讯
Send() 是简单的在当前线程上去调用委托来实现(同步调用)。也就是在子线程上直接调用UI线程执行,等UI线程执行完成后子线程才继续执行,需要等待。
Post() 是在线程池上去调用委托来实现(异步调用)。这是子线程会从线程池中找一个线程去调UI线程,子线程不等待UI线程的完成而直接执行自己下面的代码,不需要等待。
网友评论