using System;
using System.Drawing;
using System.Windows.Forms;
namespace AsyncWorkerCs {
public partial class uclNonBlocking : UserControl {
//unblock uclStillBlocking by using the AsyncWorkerX-methods
public uclNonBlocking() { InitializeComponent(); }
private void ucl_MouseDown(object sender, MouseEventArgs e) {
//EvaluateData(DateTime.Now, e.Location);
AsyncWorkerX.RunAsync(EvaluateData, DateTime.Now, e.Location);
}
private void EvaluateData(DateTime t, Point p) {
System.Threading.Thread.Sleep(1000);
var s = string.Format("Position {0} / {1}\nclicked at {2:T}", p.X, p.Y, t);
//DisplayResult(s, p);
AsyncWorkerX.NotifyGui(DisplayResult, s, p);
}
private void DisplayResult(string s, Point p) {
label1.Text = s;
label1.Location = p - label1.Size;
}
}
}