如果标题令人困惑,我很抱歉,我正在尝试录制音频5秒钟,然后运行关闭功能。
我想我就是这样做的
StartFunction();
Thread.Sleep(5000);
StopFunction();
但这不起作用,因为在线程处于休眠状态时它也不会记录。
然后我想,如果我做一个新的线程,做睡眠和停止功能。但是当我这样做并尝试运行停止功能时,它似乎不再停止,因为它试图停止在另一个线程,如果这是有道理的。
所以,如果有人知道如何解决这个问题,请告诉我
答案 0 :(得分:0)
答案 1 :(得分:0)
一种可能的解决方案是:
DateTime startTime = DateTime.Now
(DateTime.Now - startTime)
并查看它是否> = 5000毫秒:如果是,请停止计时器并停止录制这使您可以在屏幕上设置递减计时器 如果你想让它更容易,你可以运行一个延迟5秒的计时器,并在计时器事件中,停止它并停止录音。
答案 2 :(得分:0)
您需要使用Timer
。 .NET中有三个计时器:System.Threading.Timer
,System.Timers.Timer
和System.Windows.Forms.Timer
。
只有后者可以向您保证它将在同一个线程中运行。你需要一个Windows应用程序。
Class MyClass
{
Timer timer = new Timer();
public MyClass()
{
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = 5000;
}
void Record()
{
StartFunction();
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
timer.Stop();
StopFunction();
}
}