Возможные проблемы с производительностью при создании экземпляра 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 каждый раз, когда мое приложение вызывает событие, и их довольно много. Мой вопрос, это может вызвать проблемы с производительностью, если я буду придерживаться этой модели дизайна? В тестировании я не заметил какого-либо снижения производительности, но хотел спросить экспертов...