Ich habe bereits die Konsole 4 Mal mit verschiedenen Frequenzen piepsen und danach Countdown von 5 bis 1. Aber jetzt möchte ich diese beiden Ereignisse gleichzeitig geschehen - Piepton und zur gleichen Zeit zeige eine Nummer an. Ich kann keine Antwort auf Google finden und der Versuch des Laien, beide Befehle in einer Zeile zu schreiben, führt zu nichts Gutes. Gibt es also eine Möglichkeit dies zu tun oder die Konsole unterstützt keine simultanen Ereignisse?simultane Ereignisse in der Konsole C#
0
A
Antwort
0
Uh, müssen Sie System.Threading
static void Main()
{
Thread t = new Thread (beep);
t.Start();
Console.WriteLine("Your text");
}
static void beep()
{
//beep function here
}
0
Ja verwenden, können Sie dies tun.
Angenommen, Sie haben zwei Methoden: Beep()
und PrintNumber(int number)
. Dann sollten Sie eine for
Schleife haben, um mehrmals einen Ton zu erzeugen.
for(int i = 0; i < 5; ++i)
{
Beep();
PrintNumber(i);
}
Dieser Code wird ein Geräusch und dann eine Nummer drucken. Als nächstes müssen Sie diese Methoden in verschiedenen Threads ausführen. Um einen neuen Thread zu erstellen und Code auszuführen, müssen Sie Tasks
verwenden. Um eine Aufgabe zu erstellen, benötigen Sie eine Fabrik verwenden:
Task.Factory.StartNew(action);
Und passieren dort eine Aktion ausgeführt werden. So ist die komplette Lösung in Ihrem Fall ist
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();
}
}
}
Wo () => {}
eine Notation ist eine Lambda-Ausdrücke zu schreiben - kleine Stücke von Code ohne Definition eines Verfahrens.
Verwandte Themen
- 1. C# Fehler in der Konsole
- 2. Benutzerdefinierte Ereignisse in Firebase Analytics-Konsole
- 3. Überwachen Sie alle JavaScript-Ereignisse in der Browser-Konsole
- 4. Android Firebase Analytics Benutzerdefinierte Ereignisse Berichterstattung in der Konsole
- 5. Der Hauptzweck der Ereignisse in C#
- 6. Simultane Anrufe
- 7. C++ Signature Scanner in der Konsole
- 8. C++ Konsolentastatur Ereignisse
- 9. Eclipse-Plugin-Protokoll wird nicht sofort in der Konsole in swt Schaltfläche Onclick-Ereignisse gedruckt das Protokoll in der Konsole
- 10. Benutzerdefinierte Ereignisse in C++?
- 11. Testen in der Konsole
- 12. C# -Konsole?
- 13. Lösung der kleinsten Quadrate für simultane Gleichungen
- 14. Lock simultane JavaScript-Aufruf
- 15. PHP Simultane Datei Schreibt
- 16. Simultane TCP Open
- 17. Simultane AVCaptureVideoDataOutput und AVCaptureMovieFileOutput
- 18. Accesing Broadcast Ereignisse in C#
- 19. Simultane NSURLConnection-Anfragen senden
- 20. Ereignisse oder Lambdas in C#?
- 21. Listen Laravel 'illuminate.query' Ereignisse in Handwerker Konsole Befehle
- 22. Farben in C++ Win32 Konsole
- 23. Validate Konsole Eingabe in C++
- 24. Simultane Inserts in CoreData in iOS
- 25. Keine Ausgabe in der Konsole
- 26. Gulp Fehler in der Konsole
- 27. Platz in der Konsole
- 28. C/C++ Konsole Windows WIN32
- 29. Thread-Ereignisse zurücksetzen - C++
- 30. Simultane MySQL-Einfügungen in der gleichen Tabelle: wie?
Warum machst du es wird in gleichen Zeiten durchgeführt werden? Ich kann sicher sein, dass es nicht geht. –
@JerrySwitalski so funktioniert es auf meiner Maschine - Thread-Ausführung nach dem Erstellen neuer Aufgabe starten. Ich kann gemischte Ausgaben in der Konsole sehen, wenn ich die Methode "Console.WriteLine to Beep" hinzufüge. Könnten Sie bitte erläutern, warum es nicht gleichzeitig funktioniert? – cassandrad
Ich sehe, Entschuldigung für späte Antwort - so denke ich, dass ich falsch lag, wenn es getestet wird. Prost –