Как я могу остановить эту асинхронную функцию с заданным указанным временем, которое включает OnTimeEvent? - PullRequest
1 голос
/ 11 апреля 2019

У меня есть функция, которая включает таймер, и каждый интервал времени происходит OnTimedEvent.Поскольку функция должна быть асинхронной и иметь определенную длительность, которая будет отменена после этого времени.Может кто-нибудь помочь мне, как я могу установить время ожидания для этой функции?

Я пытался реализовать CancellationToken, но так как OnTimedEvent произошел, я не мог знать, как реализовать это.

public static async Task GetResultOfComparison(string audioName)
{
    //Loading all .wav files into specified dictionary
    ReadAudioFromTextFile();

    //Gets the MFCC's of specified .Wav file with given "audioName"
    GetMFCCVectorOfSelectedWav(GetAudioFilePath(dictionary, audioName));
    timer.Enabled = false;

   //Start Recording
    SetupRecording();
    timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
    timer.Enabled = true;         
}

public static void OnTimedEvent(object source, ElapsedEventArgs e)
{
    RecordAndExtractMFCCBDD();
}
...