MainThreadSynchronizationContext.cs 863 B

12345678910111213141516171819202122232425262728293031
  1. using System;
  2. using System.Threading;
  3. namespace ET
  4. {
  5. public class MainThreadSynchronizationContext: Singleton<MainThreadSynchronizationContext>, ISingletonUpdate
  6. {
  7. private readonly ThreadSynchronizationContext threadSynchronizationContext = new ThreadSynchronizationContext();
  8. public MainThreadSynchronizationContext()
  9. {
  10. SynchronizationContext.SetSynchronizationContext(this.threadSynchronizationContext);
  11. }
  12. public void Update(int timeMS)
  13. {
  14. this.threadSynchronizationContext.Update();
  15. }
  16. public void Post(SendOrPostCallback callback, object state)
  17. {
  18. this.Post(() => callback(state));
  19. }
  20. public void Post(Action action)
  21. {
  22. this.threadSynchronizationContext.Post(action);
  23. }
  24. }
  25. }