This is a great article on C # thread that anyone who wants to know about C # Threading should read it.
But for your situation, I would do something like this:
class Program {
static BackgroundWorker bw;
static void Main() {
bw = new BackgroundWorker();
bw.WorkerSupportsCancellation = true;
bw.DoWork += bw_DoWork;
bw.RunWorkerCompleted += bw_RunWorkerCompleted;
bw.RunWorkerAsync ();
}
static void bw_DoWork (object sender, DoWorkEventArgs e) {
}
static void bw_RunWorkerCompleted (object sender, RunWorkerCompletedEventArgs e) {
}
}
If the process is likely to take some time, you can get BackgroundWorker to report its progress.