我已经让控制台以不同的频率发出4次哔声,然后从5到1倒计时。但现在我想让这两个事件同时发生 - 嘟嘟声,同时显示一个数字。我无法在谷歌上找到答案,外行人试图在一行上写下这两个命令也没什么用。 那么,有没有可能的方法,或者控制台不支持同时发生的事件?
答案 0 :(得分:0)
呃,你需要使用System.Threading
static void Main()
{
Thread t = new Thread (beep);
t.Start();
Console.WriteLine("Your text");
}
static void beep()
{
//beep function here
}
答案 1 :(得分: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();
}
}
}
其中() => {}
是写一个lambda表达式的符号 - 没有方法定义的小段代码。