public void Invoke(Delegate func, params object[] args) { ResInvokeElem inv; lock (InvokeQueue) { inv = new ResInvokeElem(func, args); InvokeQueue.Enqueue(inv); } inv.Sync.WaitOne(); }