Короче говоря, я использую C # для научных вычислений и написал метод с циклом while, который может выполняться с указанным пользователем количеством шагов ... На самом деле этот метод может занять слишком много времени для выполнения.(вроде больше 5 часов).Когда это занимает много времени, я могу остановить метод, например, нажав клавишу Esc .
Когда я читаю что-то о взломе while
, это так же просто, как Boolean
флаг или что-то вроде этого.Поэтому я подумал примерно так:
public Double? Run(int n)
{
int i = 0;
while ((i < n) && (/* inputkey != ConsoleKey.Escape */))
{
// here goes the heavy computation thing
// and I need to read some "inputkey" as well to break this loop
i++;
}
// I'm not worried about the return statement, as it is easy to do...
// returns null if the user skipped the method by pressing Escape
// returns null if the method didn't converged
// returns the double value that the method calculated otherwise
}
Ну, это то, о чем я думал до сих пор ... Так что, пожалуйста, не могли бы вы дать полезные идеи на этот счет?Как я могу ждать ввода пользователя (я думал о Events
, но я не уверен, как реализовать это здесь, и я думаю, что это сделает код еще медленнее, если мне придется слушать клавишу каждый разшаг, в который входит код ...
Ну, есть идеи или комментарии?
Обновление : я думаю, что я должен был лучше описать проблему. ВсеРешения, которые вы дали мне, могут решить эту проблему, которую я предложил, но я думаю, что я не был полностью уверен в своей реальной проблеме. Я не знаю, должен ли я задать другой вопрос или оставить этот вопрос ...