Мне нужно продолжать использовать метод для 24x7. Обычно приложение должно обрабатывать 40 данных за каждую секунду, используя некоторую нить. Я могу использовать while или recursive call ling тот же метод. но в обоих процессах процессор использует слишком высокий уровень почти 95-100%. Я не могу использовать таймер, потому что , тогда потоки обработки не работают должным образом. в соответствии с предоставленным решением многие люди говорят, чтобы использовать время с потоком сна. но если я использую thread sleep , тогда он получает задержку на каждой итерации. Я использую C# 4.0.Каков наилучший способ продолжать использовать метод
мой вопрос: есть ли лучшее решение для сокращения использования процессора?
основной метод:
static void Main(string[] args)
{
while(true)
{
processData();
Thread.sleep(1000);
// here i use a 1 second sleep just for give a breath of CPU.
//But this one second sleep make me delay for enter data processing.
// I am looking for a better solution that no sleep time will use and CPU usages will getting low.
}
}
//Method should run always
static string processData()
{
{
// Open and close threads to process the data in every second.
}
// processData(); // it can be used for recursive method calling
}
', но если я использую thread sleep, тогда он получает задержку на каждой итерации' - Remove' Thread.Sleep' ??? – Habib
Где находятся данные, которые вы обрабатываете? – dasblinkenlight
Ничего плохого в использовании 'Thread.Sleep'. Может быть, вы не используете его в лучшем месте? Например, если ваш код циклически работает и выполняет около 10 раз в секунду, но вам нужно его выполнять только один раз в секунду, а затем просто спать в течение 1 секунды между каждой итерацией. Почему задержка на 1 секунду вызывает проблему? –