MultiSourceFrameArrived - = не работает. Как я могу отключить это? - PullRequest
0 голосов
/ 11 февраля 2020

Я работаю над проектом Kinect. Я записываю данные из полученных кадров. Когда мне приходится обрабатывать данные кадра, программа отнимает много времени. Тем временем я хочу отключить EventHandler MultiSourceFrameArrived.

Дело в том, что я читаю разные посты, я не могу найти ответ, который соответствует моей проблеме. Выражение -=, кажется, работает, только если оно находится в той же области видимости, что и выражение +=. Когда я пишу их в разных областях, фреймы все еще прибывают, и я не могу отключить этот обработчик событий.

НЕ РАБОЧИЙ код это:

private void MainWindow()
{
    //Intitalize components
    if (this.multiSourceFrameReader != null)
    {
        EnableFrameArrived();        
    }
}

private void MultiSourceFrameReader_MultiSourceFrameArrived(object sender, MultiSourceFrameArrivedEventArgs e)
{
     DisableFrameArrived();
}

private void DisableFrameArrived()
{
    this.multiSourceFrameReader.MultiSourceFrameArrived -= this.MultiSourceFrameReader_MultiSourceFrameArrived;
//This doesn`t cancel my suscription to the event.
}

private void EnableFrameArrived()
{
    this.multiSourceFrameReader.MultiSourceFrameArrived += MultiSourceFrameReader_MultiSourceFrameArrived;
}

РАБОЧИЙ код это:

private void MainWindow()
{
    //Intitalize components
    if (this.multiSourceFrameReader != null)
    {
        this.multiSourceFrameReader.MultiSourceFrameArrived += this.MultiSourceFrameReader_MultiSourceFrameArrived; 
        //I subscribe to the event
    }
    this.multiSourceFrameReader.MultiSourceFrameArrived -= this.MultiSourceFrameReader_MultiSourceFrameArrived;
    //I cancel my subscription. But I need to cancel my subscription in another scope. 
}

Я прокомментировал остальную часть кода и просто оставил это часть работает. Я продолжаю получать фреймы поступлений, даже если метод Disable достигнут. Почему отмена моего мероприятия возможна только в том случае, если я в той же сфере? Я читаю разные блоги, но не могу решить это.

Есть предложения? Спасибо!

...