本文整理汇总了C#中IScanner.Execute方法的典型用法代码示例。如果您正苦于以下问题:C# IScanner.Execute方法的具体用法?C# IScanner.Execute怎么用?C# IScanner.Execute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IScanner
的用法示例。
在下文中一共展示了IScanner.Execute方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DoWork
//========================================================================================
// Methods
//========================================================================================
/// <summary>
/// This is the worker method for the Librarian background thread. It implements
/// a continual loop waiting for scanning tasks to perform.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = (BackgroundWorker)sender;
while (!worker.CancellationPending)
{
scanner = queue.Dequeue();
if (worker.CancellationPending)
{
break;
}
if (watcher != null)
{
// Disable the watcher while scanning is active. This way we won't have
// file lock contentions or complex threading issues.
watcher.EnableRaisingEvents = false;
}
ProgressChangedEventHandler progressHandler =
new ProgressChangedEventHandler(DoScannerProgressChanged);
scanner.ProgressChanged += progressHandler;
worker.ReportProgress(10,
new ScanningProgress(ScannerState.Beginning, scanner.Name));
try
{
scanner.Execute();
}
catch (Exception exc)
{
App.LogException(new SmartException(exc));
}
RemoveScanner(scanner);
if (watcher != null)
{
watcher.EnableRaisingEvents = true;
}
worker.ReportProgress(100,
new ScanningProgress(ScannerState.Completed, scanner.Name));
lock (sync)
{
scanner.ProgressChanged -= progressHandler;
scanner = null;
}
}
}