Я уже сделал консоль для подачи звукового сигнала 4 раза с разными частотами, а затем для обратного отсчета от 5 до 1. Но теперь я хочу, чтобы эти два события происходили одновременно - звуковой сигнал и в то же время отобразите номер. Я не могу найти ответ на этот вопрос в Google, и попытка непрофессионала написать обе команды на одной линии не приведет ни к чему хорошему. Итак, есть ли возможный способ сделать это, или консоль не поддерживает одновременные события?одновременные события в консоли C#
0
A
ответ
0
Мм, вам нужно использовать System.Threading
static void Main()
{
Thread t = new Thread (beep);
t.Start();
Console.WriteLine("Your text");
}
static void beep()
{
//beep function here
}
0
Да, вы могли бы сделать это.
Предположим, что у вас есть два способа: Beep()
и PrintNumber(int number)
. Затем вы должны иметь цикл for
, чтобы сделать звук несколько раз.
for(int i = 0; i < 5; ++i)
{
Beep();
PrintNumber(i);
}
Этот код произведет звук, а затем напечатает номер. Затем вам необходимо выполнить эти методы в разных потоках. Чтобы создать новый поток и запустить в нем некоторый код, вам нужно использовать Tasks
. Чтобы создать задачу, вам необходимо использовать завод:
Task.Factory.StartNew(action);
И передайте там действие, которое необходимо выполнить. Таким образом, полное решение в вашем случае
using System;
using System.Threading.Tasks;
namespace ConsoleApp
{
class ConsoleApp
{
public static void Beep()
{
// make sound
}
public static void PrintNumber(int number)
{
Console.WriteLine(number);
}
public static void Main(string[] args)
{
var printTask = Task.Factory.StartNew(
() =>
{
for (int i = 0; i < 10; ++i)
PrintNumber(i);
});
var beepTask = Task.Factory.StartNew(
() =>
{
for (int i = 10; i > 0; --i)
Beep();
});
printTask.Wait();
beepTask.Wait();
}
}
}
Где () => {}
является нотацию, чтобы написать лямбда-выражения - небольшие куски кода без определения метода.
Смежные вопросы
- 1. События консоли клавиатуры C++
- 2. Одновременные Словари в C#
- 3. Одновременные подключения MySql/C#
- 4. EventMachine не ловить почти одновременные события
- 5. Пользовательские события YUI и одновременные действия
- 6. Одновременные события прикосновения обработки на несколько представлений в Android
- 7. Обнаружение события завершения консоли
- 8. События интерактивной консоли Erlang
- 9. одновременные изменения в xml-файле в C#
- 10. Возможно ли создавать одновременные события касания в iOS-симуляторе?
- 11. Одновременные изменений в асинхронном MongoDB (C#)
- 12. Изменить размер события для консоли
- 13. Google Analytics записывает одновременные события с разной скоростью
- 14. Как скрыть события кэша приложений в консоли?
- 15. Как прослушивать события консоли в symfony?
- 16. Как мы регистрируем события в консоли Tagging?
- 17. Пользовательские события в консоли для аналитики Firebase
- 18. Одновременные события кнопки GridView/определение, какая кнопка была затронута
- 19. Одновременные команды
- 20. Одновременные подключения
- 21. Одновременные запросы в Solr
- 22. Одновременные Вставки в MySql
- 23. Скрыть окно консоли в приложении консоли C#
- 24. Одновременные вызовы
- 25. освобождения памяти на консоли близко события
- 26. Одновременные соединений в signalR ступице
- 27. C# одновременные вызовы для sql db
- 28. C# VB Одновременные соединения LocalDB Database
- 29. System.InvalidCastException в консоли C#
- 30. C# Ошибка в консоли
Почему вы это делаете в одно и то же время? Я могу ухаживать за ним. –
@JerrySwitalski это то, как это работает на моей машине - запуск потока начинается после создания новой задачи. Я могу видеть смешанный вывод в консоли, если я добавлю метод Console.WriteLine to Beep. Не могли бы вы объяснить, почему он не будет работать одновременно? – cassandrad
Я вижу, извините за поздний ответ - так что я думаю, что я ошибся, если он протестирован. ура –