C # «System.StackOverflowException:» при назначении обработчика события - PullRequest
0 голосов
/ 27 марта 2019

У меня есть подпрограмма инициализации, вызванная из события Show формы.По завершении инициализации запускается событие Initialized.

В этом случае я назначаю обработчики событий инициализированным объектам.Но как только я пытаюсь назначить это событие, я получаю «System.StackOverflowException:».Я поставил точку останова в событии, чтобы увидеть, вызывается ли оно рекурсивно, но это не так.

SCD.OCV.OnCard += OCV_OnCard;

Обработчик события в SCD.OCV.OnCard определяется следующим образом в классе TOCV:

public class CardEventArgs : EventArgs
{
    public CardEventArgs(TCard card, ECardStatus status)
    {
        Card = card;
        Status = status;
    }
    public ECardStatus Status { get; }
    public TCard Card         { get; }
}
public             event CardHandler OnCard;
public    delegate void  CardHandler(object sender, CardEventArgs e);
protected virtual  void  FireCard(CardEventArgs e)
{
    OnCard?.Invoke(this, e);
}

Обработчик события, который я пытаюсь назначить, определяется следующим образом:

private void OCV_OnCard(object sender, TOCV.CardEventArgs e)
{
    BeginInvoke((Action)delegate
    {

    });
}

А теперь для назначения, где все аварии:

SCD.OCV.OnCard += OCV_OnCard; // Here I get the StackOverflowException

C # немой основной язык программирования (я больше знаком с C / C ++), поэтому я не уверен на 100%, все ли сделано правильно.

[EDIT]
Успел отследитьвниз по вопросу.Это была сторонняя DLL C / C ++, неправильно завершающая строку.Следовательно, символ * взбесился в памяти.

...