Re: Visual studio C++ CLR - vyvolání grafické akce z callbacku
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Pátek Březen 4 18:51:27 CET 2022
Podobne veci jsem resil primitivne poslanim zpravy oknu - nestaci to? To
by melo jit univerzalne mezi vlakny pres post nebo snad i mezi procesy.
Rezie asi velka uznavam.
Asi existuji primo v systemu nejake mechanismy, jak provadet notifikace
ale nikdy jsem to nepotreboval. Videl jsem ale uz i reseni, kdy vlakna
komuikovala pres network i v ramci jedne aplikace :-D
Dne 04.03.2022 v 18:43 Pavel Hudeček napsal(a):
> Myslím, že to není ono.
>
> Jde o následující situaci:
>
> *void callbackFn(int dataCnt);**
> **
> **namespace pokus1 {**
> ** ...**
> ** public ref class MyForm : public System::Windows::Forms::Form**
> ** {**
> ** ...**
> **// tady je form a všechny controly**
> ** ...
>
> **// kliknutím na button se se odsud spouští ten proces na pozadí:**
> ** startTest( ... callbackFn); // funkce z externí knihovny**
> ****
> **// je tu funkce na aktualizaci pictureboxu:**
> ** public: void refreshImg(int dataIdx) {**
> ** ...**
> ** }**
> ** }**
> **}**
> **// tady, mimo namespace projektu je callbackFn,
> // jinak ji ta startTest nemůže použít**
> **void callbackFn(int dataCnt) {**
> **// tady by se měl zavolat refreshImg(dataCnt-1);
> **}*
>
> PH
>
>
> Dne 04.03.2022 v 16:52 Jiří Nesvačil napsal(a):
>> Zdravim,
>>
>> hledejte BeginInvoke
>>
>> Nesvacil
>>
>> Dne 04.03.2022 v 16:32 Pavel Hudeček napsal(a):
>>> Dobrý den všem,
>>>
>>> mějme program psaný ve VS jako CLR aplikaci v C++.
>>> Program spustí funkci běžící na pozadí, která občas vyvolá callback
>>> a tím oznamuje, že jsou k dispozici nová data. Pak by se měl
>>> aktualizovat picturebox, případně objevit záznam v listboxu a vše
>>> pokračuje dál.
>>>
>>> Jenže nemůžu přijít na to, jak z tý callback funkce, která není
>>> součástí managed prostředí, vyvolat akci v managed prostředí.
>>>
>>> Teda funguje mi varianta, že callback nastaví nějakou globální
>>> proměnnou a na tu periodicky kouká timer, ale to je takový poněkud
>>> nepraktický, protože délka "občas" závisí na kvantových jevech a
>>> může dosahovat 100 kHz, nebo taky půl hodiny.
>>>
>>> Nějaké návrhy, jak to dělat přímočařeji?
>>>
>>> Díky,
>>> PH
>>> _______________________________________________
>>> HW-list mailing list - sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list - sponsored bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20220304/86166398/attachment.htm>
Další informace o konferenci Hw-list