Mam bibliotekę innej firmy zawierającą klasę, która wykonuje funkcję asynchronicznie. Klasa dziedziczy po formularzu. Funkcja w zasadzie wykonuje obliczenia na podstawie danych przechowywanych w bazie danych. Po zakończeniu wywołuje zdarzenie _Complete w formularzu wywołującym.Jednoczesne zawijanie metody asynchronicznej w języku C#
Co chcę zrobić, to wywołać funkcję synchronicznie, ale z aplikacji bez systemu Windows. Problem polega na tym, że bez względu na to, co robię, moje bloki aplikacji i program obsługi zdarzeń _Complete nigdy nie są uruchamiane. Z postaci okna mogę symulować funkcję działającą synchronicznie za pomocą flagi "complete" i "while (! Complete) application.doevents", ale oczywiście application.doevents nie jest dostępna w aplikacji bez systemu Windows.
Czy istnieje coś, co by mnie zatrzymać stosując metodę klasa poza granicami aplikacji formularza okien (ze względu na to dziedziczenie z Postać)? Czy jest jakiś sposób mogę obejść to?
Dzięki Mike
nie jestem jasne. Czy twój kod działa poprawnie, gdy działa on asynchronicznie w aplikacji bez systemu Windows? Czy może zawsze blokować w nieskończoność w aplikacji non windows? – Sam
W aplikacji bez systemu Windows blokuje się w nieskończoność, ponieważ zdarzenie _Complete nigdy nie jest uruchamiane, mimo próby ręcznego wywołania programu naprawczego itp. W aplikacji formularza systemu Windows działa poprawnie. – mikecamimo