Vjerovatno zavisi od više faktora...
Ti u biti želiš da se kod izvršava do jedne tačke, i onda "stane". Ako bi ovo uradio u programu na bilo koji način koji se trenutno mogu sjetiti, bilo bi prilično neefikasno, naopako i neelegantno urađeno. Npr, možeš postaviti neku bool varijablu, i if uslov u metodi koji prema uslovu grana posao na onaj prije interakcije i poslije; pa kad se prilikom interakcije odradi što želiš, pozoveš istu metodu sa prethodno postavljenom varijablom na true.
Ipak, logično gledajući, koji god da posao radiš - nema baš smisla da neka metoda ide do jedne tačke i stane, osim ako se ne radi o stvarno dugačkoj i vremenski zahtjevnoj metodi. U ovome slučaju, koristi niti. Metodu pozovi iz nove niti, te onda vrlo elegantno pomoću EventWaitHandle-ova možeš komunicirati između glavne UI niti i ove posebne niti u slučaju dodatne potrebne korisničke interakcije.
Pokušaj razdvojiti metodu na dvije, pa nakon interakcije pozovi drugu; a pri kraju prve zapamti sve potrebne podatke u varijable.
Možda, ako se radi o vrlo kratkoj i brzoj metodi, možeš i metodu pozvati nakon interakcije
Imaš mnogo rješenja za ovo...
My programs don’t have bugs, they just develop random features.