Я бы согласился с Джейсоном в целом - хаки и временные исправления имеют неприятную привычку превращаться в «функции» программы.
Однако, чтобы ответить на ваш вопрос, я бы предложил иметь в вашей программе флаг отключения, который отключает желаемую функциональность во время выполнения ваших расчетов. Затем вы можете поместить в обработчик событий проверку на флаг:
public bool DisableFlag { get; set; }
public void MyKeyEventHandler(object sender, EventArgs e)
{
if (DisableFlag)
{
return;
}
// Do stuff
}
Надеюсь, это поможет!
Cheers,
Крис.
РЕДАКТИРОВАТЬ:
Думая о комментарии Кена, и это правда, событие будет поставлено в очередь, и оно будет полезно только до тех пор, пока некоторые события проходят через него. Итак, другой вариант - отключить четный обработчик, выполнив
myControl =- MyKeyEventHandler;
, а затем
myControl =+ MyKeyEventHandler;
когда вычисления завершены. Таким образом, никакие события не будут поставлены в очередь, и вы избежите проблемы, описанной Кеном !!