private void BackgroundUpload(object sender, DoWorkEventArgs doWorkEventArgs)
{
var args = (object[]) doWorkEventArgs.Argument;
var folder = (string) args[0];
var dlg = (BulkUploadProgressDlg) args[1];
var appContext = (ApplicationContainer)args[2];
ProjectContext context = null; // Expensive to create; hold each one we make until we find a book that needs a different one.
try
{
UploadInternal(folder, dlg, appContext, ref context);
}
finally
{
if (context != null)
context.Dispose();
}
}