FWIW your simplest approach to multi-threading would be to use the BackgroundWorker class. Simple example (assuming the form has a button1 button and a progressBar1 ProgressBar:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
BackgroundWorker bgw = new BackgroundWorker();
bgw.DoWork += new DoWorkEventHandler(bgw_DoWork);
bgw.ProgressChanged += new ProgressChangedEventHandler(bgw_ProgressChanged);
bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgw_RunWorkerCompleted);
bgw.WorkerReportsProgress = true;
bgw.RunWorkerAsync();
}
void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
progressBar1.Value = 0;
}
void bgw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
void bgw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker bgw = sender as BackgroundWorker;
for (int i = 0; i < 10; i++)
{
System.Threading.Thread.Sleep(i * 250);
bgw.ReportProgress(i * 10);
}
}
}
>Let me reassure you, there is nothing "anal" about my attachment to the WAIT WINDOW NOWAIT behaviour in vfp, other than that it was so damn easy to use :)
>
>I'm looking for a way to display some "monitoring", keeping my users from becoming impatient, during a process that takes more than say a few seconds (yes, my users are high-strung :) )
>
>You figure multi-threading (something I kept away from all those years) is worth exploring in this context?
>
>Thanks for all your help (even when you think you're not, (and that's the only time you can be caught for being wrong) (I guess in C# you don't mind all those parentheses) you are helping dear :) ).
>
>Kind regards,
>
>Marc
>
>
>
>
>>I don't have anything :-{
>>
>>I'm also a bit rusty on the actual VFP implementation but I assume you would most likely want WAIT WINDOW NOWAIT behaviour.
>>IAC it wouldn't be trivial. AFAICS you'd need a form subclass using .Show() or ShowDialog() depending on the NOWAIT flag, a timer to implement TIMEOUT and also have to monitor keyboard and mouse activity to determine when to hide/close the window.
>>
>>My gut feeling is that this is a VFP specific piece of behaviour which wouldn't normally be seen in a Winforms app anyway and, unless there is a very compelling reason, it would be better to rething the interface.
>>
>>Won't say HTH because I'm sure it doesn't :-{
>>
>>>Winforms. ... and I guess I can read C#, so if you have something, do not bother to translate it... (or to be more realistic, if there is something I don't understand, I'll ask. :) )
>>>
>>>
>>>>Is this WinForms, WPF or ASP.NET ?
>>>>
>>>>>Anybody coded a simple replacement of the "wait nowait" statement in vb.net.
>>>>>
>>>>>Thanks and kind regards,
>>>>>
>>>>>Marc