Возможные проблемы с производительностью при создании экземпляра delg ate SendOrPostCallback с помощью универсального метода

После игры с AsyncOperation, чтобы упорядочить мои события в контексте пользовательского интерфейса, мне пришлось создать дубликаты моих методов OnEventName в версиях OnEventNameAsync. Я неожиданно обнаружил, что могу заменить все мои методы OnEventName следующими 2 методами:

private void OnRaiseEvent<T>(EventHandler<T> instance, object sender, T e) where T : EventArgs
{
    if (this._calling_context != null)
    {
        this._calling_context.Post(this.OnRaiseEventAsync<T>, new object[] { instance, sender, e });
    }
}

private void OnRaiseEventAsync<T>(object state) where T : EventArgs
{
    object[] array = state as object[];

    if (array != null && array.Length == 3)
    {
        EventHandler<T> instance = array[0] as EventHandler<T>;
        object sender = array[1];
        T e = array[2] as T;

        if (instance != null && sender != null && e != null)
        {
            instance(sender, e);
        }
    }
}

Проведение мероприятия по телефону:

this.OnRaiseEvent (this.EventName, this, EventArgs.Empty);

Теперь мое приложение должно создавать новый экземпляр делегата SendOrPostCallback каждый раз, когда мое приложение вызывает событие, и их довольно много. Мой вопрос, это может вызвать проблемы с производительностью, если я буду придерживаться этой модели дизайна? В тестировании я не заметил какого-либо снижения производительности, но хотел спросить экспертов...

0 ответов

Другие вопросы по тегам