Прежде всего, я хотел поблагодарить сообщество. В последнее время ты очень помог! Обычно мне даже не нужно задавать вопросы, потому что они уже есть. Теперь у меня есть проблема, которая напрямую не связана с кодом, а сама программа.Лучшие практики? Подождите, пока не получите или не поднимет событие при приеме
Я работаю с чипом FTDI и программированием на C#, где приложение ПК действует как Мастер (отправляет запросы) миллисекундов, но в любом случае потребуется некоторое время. Я застрял в концептуальном/философском вопросе дизайна кода.
После отправки запроса я должен сразу ответить на вопрос (проверяя также тайм-аут), или я должен постоянно контролировать вход (BackgroundWorker powered) и поднять событие после получения ввода данных? Что бы вы порекомендовали, что по вашему опыту. Какие факторы я должен учитывать при выборе?
Я никогда не изучал программный дизайн самого программирования, поэтому я думаю, что мне не хватает базового на этом, но это личный проект, над которым я работаю, и я уверен, что мне понравятся некоторые отзывы/указатели на это от вас, ребята.
Спасибо!
Я отлично себя чувствовал, пока вы не сказали «используя механизм блокировки». Я пойду гугл и вернусь.Во всяком случае, ведомый фактически не создает события, но FTDI Chip позволяет подписку EventWaitHandle, которую я мог бы использовать для создания события на полученных байтах. То, что я не хочу делать, - это оставаться в цикле до тех пор, пока WaitEventHandle не загорится, когда я потеряю ответ GUI. Благодарю. –
@Jazz - простой способ обеспечить однопоточный доступ - это определить «статический объект mylock = new object();» в одном из ваших классов, а затем использовать «блокировку (mylock)» вокруг кода в вашем таймере и get- ответные обратные вызовы, которые не должны выполняться одновременно. –
, когда вы имели в виду «используя стандартные механизмы .net», вы имеете в виду system.timers.timer? –