с# Прерывание выполнение функции не дожидаясь ее результатов, как?

Есть основной поток, сейчас в нем через System.Windows.Forms.Timer(); выполняется функция по таймауту

public Form1()
{
    InitializeComponent();
    InitTimer_func();
}

public static System.Windows.Forms.Timer timer_tick_func;
public void InitTimer_func()
{
    timer_tick_func = new System.Windows.Forms.Timer();
    timer_tick_func.Tick += new EventHandler(timerEvent_func);
    timer_tick_func.Interval = 100; // in miliseconds
    
}

private void timerEvent_func(object sender, EventArgs e)
{
    function_name();
}


private void function_name()
{
    ...
}

Как возможно сделать прерывание выполнения функции function_name не дожидаясь результата ее выполнения? Пробовал timer_tick_func.Stop() и timer_tick_func.Dispose() они дают завершиться функции. Возможно мне нужно применить другой метод? Смысл в чем, в основном потоке я делаю проверку, по типу, читается ли память в процессе, и если нет, то нужно прервать function_name не дожидаясь, иначе программа закрывается с ошибкой. Возможно как вариант обработать исключение вызванное из основного потока, но как его передать в этот таймер? Или все же придется переписать под Thread или нечто иное?


Ответы (0 шт):