Oprettet ons. d. 18. juni 2003 kl. 09:17:29

meilby
meilby (19.157 point. Point ude: 0)

UI Threads

Nogen der kender nogen links til en god UI Thread tutorial, synes nemlig ikke jeg kan finde noget om andre end Worker threads....

Skrevet ons. d. 18. juni 2003 kl. 10:15:42| #1

segmose
segmose (27.030 point)
Hvad mener du med UI Thread? User interface threads?

Skrevet ons. d. 18. juni 2003 kl. 10:32:52| #2

meilby
meilby (19.157 point)
Jeps User interface threads

Skrevet ons. d. 18. juni 2003 kl. 10:47:04| #3

segmose
segmose (27.030 point)
Hvordan adskiller UI threads fra almindelige? ellers se for windows http://blacksun.box.sk/ (...)

Skrevet ons. d. 18. juni 2003 kl. 11:00:25| #4

meilby
meilby (19.157 point)
Det er noget med at med UI Threads kan du skrive ud til dine items i VC++ som jeg skal bruge det til.

Skrevet ons. d. 18. juni 2003 kl. 11:33:48| #5

segmose
segmose (27.030 point)
Med WC++ må jeg melde pas, hvis ovenstående ikke kan bruges.

Skrevet ons. d. 18. juni 2003 kl. 11:36:05| #6

meilby
meilby (19.157 point)
Det kan det desværre ikke da det er Consol

Skrevet ons. d. 18. juni 2003 kl. 20:42:38| #7

bertelbrander
bertelbrander (17.270 point)
Hvad er det du gerne vil vide om UI-threads?
Jeg kender ikke nogen tutorials, men hvis du har spøgsmål til threads kan det godt være at jeg kan svare.

Skrevet fre. d. 20. juni 2003 kl. 08:29:04| #8

meilby
meilby (19.157 point)
Jeg vil bare gerne vide hvordan man bruger UI Threads, hvordan jeg får dem startet osv.

Skrevet fre. d. 20. juni 2003 kl. 15:23:59| #9

bertelbrander
bertelbrander (17.270 point)
Har du læst denne:
http://msdn.microsoft.com/ (...)
Normalt vil jeg ikke anbefale at lave UI-threads, man får i reglen et bedre resultat og et enklere design ved at lave alt UI i main-threaden og så lave det tunge arbejde i worker-threads.
Hvad er det du vil bruge dine UI-threads til.

Skrevet man. d. 23. juni 2003 kl. 11:18:02| #10

segmose
segmose (27.030 point)
Der er en god grund til at lave UI i en anden tråd end main, hvis du vil have en højere prioritet for en tråd end for main, da man ikke kan lave det sådan omdefinere du lige trådene så den høje prio bliver main, eller en tråd under main med main der kun venter på at alt afsluttes, og UI bliver så en tråd med lavere prio, men hvorfor der er specielle UI tråd fatter jeg ikke rigtigt.

Skrevet man. d. 23. juni 2003 kl. 14:37:01| #11

bertelbrander
bertelbrander (17.270 point)
Grunden til at have UI threads er at disse kan oprette MFC CWnd's og afledte windows/views, der kan blive oprettet og kommunikere som window's/view's i main/app thread.

Skrevet tir. d. 24. juni 2003 kl. 13:51:41| #12

bertelbrander
bertelbrander (17.270 point)
>segmose
Hvorfor mener du at man ikke kan lave threads der har højere prioritet en main-thread? Det er der så vidt jeg ved muligt.

Skrevet ons. d. 25. juni 2003 kl. 08:23:50| #13

segmose
segmose (27.030 point)
Fra http://blacksun.box.sk/ (...)

Background:

On a single CPU Windows machine, all threads are kept track of and given a slice of processor time (usually a few milliseconds). Windows will cycle through the list it keeps, pausing and resuming each thread. Once a thread has used up its time on the processor, Windows will pause the thread, record its CPU registers (along with some other data), and, after restoring all its data, activate the next thread. Each thread has two priorities: base and dynamic. The base priority can be changed, however, it cannot be changed to have a priority higher than that of the parent thread. Dynamic priority is the same as the base priority, however, it can be raised or lowered by Windows. Windows chooses which thread to run next based on the thread's dynamic priority. Naturally, threads with a higher dynamic priority run first.

Skrevet ons. d. 25. juni 2003 kl. 08:52:22| #14

meilby
meilby (19.157 point)
Jeg er ved at prøve på at lave en chat lidt ligende ICQ, så jeg skal hente tekst ud fra socket og skrive det ud i en edit og det kan jeg ikke få en worker thread til, men jeg fatter nada af UI Threads så jeg er lidt lost.

Skrevet ons. d. 25. juni 2003 kl. 08:56:05| #15

segmose
segmose (27.030 point)
Skal du ikke bare sende nogle passende events fra din worker thread til din main (eller UI) thread?

Skrevet ons. d. 25. juni 2003 kl. 09:19:19| #16

meilby
meilby (19.157 point)
Jo noget ligende det men jeg kan intet inde fra de worker threads jeg fik lavet mig, men det hvis jeg kan bruge worker threads til det så vil jeg da hellere det da de virker som om de er en del nemmere at bruge.

Skrevet ons. d. 25. juni 2003 kl. 15:45:46| #17

bertelbrander
bertelbrander (17.270 point)
Du kan sende en message fra din thread med PostThreadMessage, hvis du blot skal sende til din main thread kan du gøre det med:
AfxGetApp()->PostThreadMessage(msg_id, wp, lp);
msg_id er en id som du får fra RegisterWindowMessage, f.ex:
UINT msg_id = RegisterWindowMessage("WhatEverMsg");
wp og lp kan f.ex være en int eller en pointer til en class.
I App'en kan du fange beskeden med ON_REGISTERED_MESSAGE, eller bedre ved at instalere en message hook med SetWindowsHookEx, den hook du skal lave er af typen WH_GETMESSAGE.

Skrevet ons. d. 25. juni 2003 kl. 20:50:31| #18

bertelbrander
bertelbrander (17.270 point)
>segmose
Jeg kan ikke se noget problem i at give main thread prioriteten THREAD_PRIORITY_LOWEST, og lave en slave thread fra main og give denne prioriteten THREAD_PRIORITY_HIGHES, vil slave thread'en så ikke have prioritet over main thread'en?

Skrevet tor. d. 26. juni 2003 kl. 01:00:23| #19

bertelbrander
bertelbrander (17.270 point)
Jeg har lagt et lille demo project, der viser hvordan man kan kommunikere mellem en worker-thread og en MFC-app, her:

http://home20.inet.tele.dk/ (...)

Skrevet tor. d. 26. juni 2003 kl. 09:04:45| #20

segmose
segmose (27.030 point)
Fra ovenstående:

"The base priority can be changed, however, it cannot be changed to have a priority higher than that of the parent thread."

Det fortolker jeg som du ikke kan få højere prio end main, men da jeg ikke har læst MS docu på eller testet det kan jeg fejlfortolke det.

Skrevet tir. d. 01. juli 2003 kl. 19:00:34| #21

meilby
meilby (19.157 point)
bertelbrander
Tak for hjælpen, vil du oprette et svar så du kan få lidt point.

Skrevet tir. d. 01. juli 2003 kl. 20:13:07| #22


Skrevet fre. d. 04. juli 2003 kl. 09:17:07| #23

segmose
segmose (27.030 point)
http://www.codeproject.com/ (...) her står en masse om hvordan man bruger worker og UI threads og hvorfor man ikke må bruge worker threads hvis man vil vise noget GUI.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Updater Hybrid App

Oprettet den 18. april 2012 kl. 13.29
sir_madsen giver 100 point for svar | Giv et svar »

Ansi-c win32API - kan ikke oprette Richedit4.1 kontrol

Oprettet den 16. april 2012 kl. 22.13
cblcbl giver 60 point for svar | Giv et svar »

Iphone Objective C - Sætte image på et imageview.

Oprettet den 7. april 2012 kl. 11.36
lasserasch giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger