public void DivideAsync(int nominator, int denominator, object state = null) { ThreadPool.QueueUserWorkItem(cb => { Thread.Sleep(10000); int?result = null; Exception exception = null; try { result = nominator / denominator; } catch (Exception ex) { exception = ex; } DivideCompletedEventArgs args = new DivideCompletedEventArgs(exception, false, state) { Result = result ?? 0 }; var handler = DivideCompleted; if (handler != null) { handler(null, args); } }); }
void proxy_DivideCompleted(object sender, DivideCompletedEventArgs e) { _numberTextBlock.Text = e.Result.Number.ToString(); _wordsTextBlock.Text = e.Result.Words; }