如何在WPF应用程序中使用Thread.Sleep?

时间:2014-01-17 08:47:01

标签: c# .net wpf printing

在WPF应用程序VS 2010中,我基本上需要打印文档并在几秒钟后开始打印时检查错误。

目前我正在使用Thread.Sleep(2000),但它不起作用。我认为try代码正在UI线程中运行。

知道怎么解决吗?还是更好的方法?

在这种特定情况下,我不关心UI线程是否被阻止几秒钟。

try
{
    printer = new Printer();
    printer.PrintTicket(dataAdv);
    // check eventual problem during printing like paper jamp
    Thread.Sleep(2000);
    if (monitorPrinter.IsPrinterReady() == false)
    {
        isPrinterReady = false;
        MessageBox.Show("Problem during the printing!!!");
    }
}

1 个答案:

答案 0 :(得分:1)

解决我的问题,感谢所有人指出我正确的方向。

try
{
   printer = new Printer();
   printer.PrintTicket(dataAdv);

   System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
   dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
   dispatcherTimer.Interval = new TimeSpan(0, 0, 5);
   dispatcherTimer.Start();
}

private void dispatcherTimer_Tick(object sender, EventArgs e)
{
   if (monitorPrinter.IsPrinterReady() == false)
   {
      MessageBox.Show("SOME PROBLEM WHEN PRINTING!");
   }
}