因此,我目前正在开发C#Forms App,在该Forms App中,我有一个Backgroundworker,它循环遍历具有DataGridViewRow的列表,并为每行创建一个线程。在该线程中,我会在用户输入的时间内一直休眠程序,但是我想在线程处于休眠状态时更新该线程中的字符串,因此基本上可以防止一个函数在线程自身内部处于休眠状态。有可能吗?
感谢您的帮助!
答案 0 :(得分:0)
这是一个调用任务的示例,该任务说“你好”,然后睡眠5秒钟,然后说“再见”。但是,当它处于休眠状态时,它将启动另一个执行简单倒计时的任务。
也许这对您有帮助:
private static void Main()
{
var sleepTime = TimeSpan.FromSeconds(5);
var sleepyTask = Task.Factory.StartNew(() =>
{
Console.WriteLine("I'm going to sleep");
// Before sleeping, launch a countdown timer
Task.Factory.StartNew(() =>
{
Countdown(sleepTime);
});
// Now go to sleep
Thread.Sleep(sleepTime);
Console.WriteLine("I'm back!");
});
sleepyTask.Wait();
GetKeyFromUser("\nDone! Press any key to exit...");
}
private static void Countdown(TimeSpan time)
{
var seconds = time.TotalSeconds;
// Write something once per second for 'seconds' seconds
while (seconds > 0)
{
Console.WriteLine(seconds--);
Thread.Sleep(TimeSpan.FromSeconds(1));
}
}