我目前正在尝试编写非常简单的事情。
它应该做什么:
现在,我不能做的部分是等待。 有线程睡眠等但他们停止GUI并使我的程序无法使用。 我也可以用计时器做,但它不是非常有效的方法,因为在实际的应用程序中将有很多等待... 反正有没有像2-3行代码那样,并且没有停止GUI?
答案 0 :(得分:2)
计时器正是你想要的 - 你想说,“在5秒内,做X”(可能在UI线程中执行),这正是计时器为你做的。如果你想在一个方法中封装它,你可以传递Action
和TimeSpan
或其他什么,那很好 - 但是计时器绝对是你的选择。
(您要使用的计时器类型取决于您希望计时器触发的线程等)。
答案 1 :(得分:1)
您需要在单独的线程上完成工作,这样才不会停止GUI线程。
Thread worker = new Thread(dowork);
worker.Start();