30 lines
		
	
	
		
			779 B
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			779 B
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | ||
|  | using System.Threading; | ||
|  | 
 | ||
|  | namespace Unity.PlasticSCM.Editor.UI | ||
|  | { | ||
|  |     internal static class EditorDispatcher | ||
|  |     { | ||
|  |         internal static void InitializeMainThreadIdAndContext( | ||
|  |             int mainThreadId, | ||
|  |             SynchronizationContext mainUnitySyncContext) | ||
|  |         { | ||
|  |             mMainThreadId = mainThreadId; | ||
|  |             mMainUnitySyncContext = mainUnitySyncContext; | ||
|  |         } | ||
|  | 
 | ||
|  |         internal static bool IsOnMainThread | ||
|  |         { | ||
|  |             get { return Thread.CurrentThread.ManagedThreadId == mMainThreadId; } | ||
|  |         } | ||
|  | 
 | ||
|  |         internal static void Dispatch(Action task) | ||
|  |         { | ||
|  |             mMainUnitySyncContext.Post(_ => task(), null); | ||
|  |         } | ||
|  | 
 | ||
|  |         static SynchronizationContext mMainUnitySyncContext; | ||
|  |         static int mMainThreadId; | ||
|  |     } | ||
|  | } |