static void WaitItemExecution(QueuedActionItem item) { //!!!!!так? while (!item.executed) { Thread.Sleep(0); } }
static QueuedActionItem ExecuteFromMainThreadLater_Internal <TResult>(Func <TResult> function) { QueuedActionItem item = new QueuedActionItem(); item.action = function; item.parameters = new object[0]; queuedActiosToExecuteFromMainThread.Enqueue(item); return(item); }
static QueuedActionItem ExecuteFromMainThreadLater_Internal <T>(Action <T> action, T param) { QueuedActionItem item = new QueuedActionItem(); item.action = action; item.parameters = new object[] { param }; queuedActiosToExecuteFromMainThread.Enqueue(item); return(item); }
static QueuedActionItem ExecuteFromMainThreadLater_Internal <T1, T2, T3, TResult>(Func <T1, T2, T3, TResult> function, T1 param1, T2 param2, T3 param3) { QueuedActionItem item = new QueuedActionItem(); item.action = function; item.parameters = new object[] { param1, param2, param3 }; queuedActiosToExecuteFromMainThread.Enqueue(item); return(item); }
static QueuedActionItem ExecuteFromMainThreadLater_Internal <T1, T2, T3, T4>(Action <T1, T2, T3, T4> action, T1 param1, T2 param2, T3 param3, T4 param4) { QueuedActionItem item = new QueuedActionItem(); item.action = action; item.parameters = new object[] { param1, param2, param3, param4 }; queuedActiosToExecuteFromMainThread.Enqueue(item); return(item); }