с# Прерывание выполнение функции не дожидаясь ее результатов, как?
Есть основной поток, сейчас в нем через 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 или нечто иное?