Windows.Form fryser ved Monitor.Wait()
Hejsa. Jeg har et problem med en Windows.Form der fryser, når jeg afvikler en metode som blokker i et stykke tid inden den returnerer.Derfor valgte jeg at lade metoden køre i en tråd for sig:
public void MakePayment(double anAmount) {
// Konvertere kroner til øre
amount = (int)anAmount * 100;
GfxGUI gui = new GfxGUI();
gui.Visible = true;
Thread thread = new Thread(new ThreadStart(DoPayment));
thread.Start();
lock (this) {
Monitor.Wait(this);}
}
private void DoPayment() {
result = kald_til_ekstern_metode_der_blokker();
lock (this) {
Monitor.Pulse(this);}
}
MakePayment må IKKE returnere før tråden er færdig - og jeg har derfor forsøgt mig med Wait/Pulse.
Desværre ser det ud til at kaldet til Wait får GUI'en til at fryse. Jeg har derfor forsøgt også at køre GUI'en i
en tråd for sig, men den fryser stadig - eller også ved jeg bare ikke hvordan man gør det rigtigt!
Hvad kan jeg ellers prøve?