Бесконечный цикл while / for без зависания в visual studio / C # - PullRequest
0 голосов
/ 11 марта 2019

Чего я хочу добиться, так это бесконечно много раз зацикливать мой код в моем графическом интерфейсе / визуальном C #, когда я читаю информацию через USB-кабель.

Я успешно прочитал код, но он показывает только одно чтение каждый раз, когда я нажимаю кнопку. Я понимаю, что если я хочу, чтобы мой код работал бесконечно, мне нужно его зациклить.

Я попробовал код ниже, но моя программа все еще зависает

while(true)
{
     //loop
     System.Threading.Thread.Sleep(10000);
}

Я нашел это сообщение и хотел попробовать метод таймера, однако, я не знаю, куда поместить этот код.

System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();
timer1.Interval=60000;//one minute
timer1.Tick += new System.EventHandler(timer1_Tick);
timer1.Start();

Я использую Microsoft Visual Studio 2010, кто-нибудь может мне помочь с использованием этого кода?

1 Ответ

0 голосов
/ 11 марта 2019

Пожалуйста, забудьте о создании таких циклов в вашей программе, они убьют поток пользовательского интерфейса, который фактически выполняет ваш пользовательский интерфейс, результат всегда будет плохим!

Вы можете запустить этот таймер, в вашем коде отсутствует реализация timer1_Tick, внутри этой функции запустите нужный код. В вашей текущей конфигурации выше, этот таймер будет запускаться каждую минуту и ​​выполнять все, что находится в timer1_Tick. Это хороший Пример .

Другой вариант - создать поток, который выполняет работу по чтению USB, и оставить поток пользовательского интерфейса в покое. Я предполагаю, что это более сложный вариант для реализации, поэтому воспользуйтесь параметром таймера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...