void ProcessWorker (object argument, AsyncOperation async, SendOrPostCallback callback)
{
// do worker
Exception error = null;
DoWorkEventArgs e = new DoWorkEventArgs (argument);
try {
OnDoWork (e);
} catch (Exception ex) {
error = ex;
e.Cancel = false;
}
callback (new object [] {
new RunWorkerCompletedEventArgs (
e.Result, error, e.Cancel),
async});
}