0
我有一個小的C#應用程序與服務器通信,並通過API請求,使用POST方法獲取一些數據。順便說一下,它是一個Apache服務器。c#BackgroundWorker pause
我的問題是我的C#應用程序連續發送大量的請求,並且服務器創建了大量的日誌文件。
我使用BackgroundWorker,我想暫停它幾秒鐘,但Thread.Sleep(5000)不起作用。
這個應用程序運行在系統托盤中,它沒有GUI,只是獲取一些內容,然後將它們打印出來。
代碼:
private void _bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
JSONParser parser = new JSONParser(_config.Prop.server + "content/api.php", "print", "getAll");
try
{
while (!_bgWorker.CancellationPending)
{
try
{
JSONPrintNeeds needs = parser.DownloadAll();
List<JSONPrintNeed> temp = new List<JSONPrintNeed>();
foreach (JSONPrintNeed need in needs.data)
{
temp.Add(need);
}
foreach (JSONPrintNeed need in temp)
{
Printer printer = new Printer(need.megrendeles);
printer.PrintController = new StandardPrintController();
List<String> installed = new List<String>();
for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++)
{
installed.Add(PrinterSettings.InstalledPrinters[i]);
}
if (installed.Contains(need.nyomtato))
{
printer.PrinterSettings.PrinterName = need.nyomtato;
}
int format = int.Parse(need.format);
switch (format)
{
case 0:
default: // txt
printer.Print();
break;
case 1: // html
SetDefaultPrinter(need.nyomtato);
browser.DocumentText = need.megrendeles;
browser.Print();
break;
}
JSONResult result = parser.DeleteOne(int.Parse(need.ny_id));
}
parser.DeleteAll();
Thread.Sleep(5000);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Expand'Thread.Sleep(5000)'does not work –
'Thread.Sleep' does not work?你如何做出這樣的決定? –
你應該閱讀這 [http://stackoverflow.com/questions/10287650/send-a-backgroundworker-to-sleep-while-checking-for-cancellation][1] [1] :http://stackoverflow.com/questions/10287650/send-a-backgroundworker-to-sleep-while-checking-for-cancellation –