mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 07:12:25 +01:00
Update wikipage Graphics with concurrency. (Signed-off-by:jocelyn).
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1438 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
[[Property:uuid|19CBA1DA-DE20-4295-8B62-472EF913335E]]
|
||||
[[Property:uuid|C881D4E8-4C3C-4AEB-8005-8315E743EC26]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:title|Graphics with concurrency]]
|
||||
How can I build a concurrent graphical in application in Eiffel?
|
||||
@@ -8,7 +8,7 @@ Eiffel has a great library for producing graphical applications: EiffelVision. E
|
||||
How do you make the two work together? This note gives you simple guidelines to ensure that the EiffelVision-SCOOP marriage is a harmonious and productive one.
|
||||
|
||||
The first question: why does the problem even exist? Let's go back to the pre-SCOOP days. Any graphical application has an "event loop", which keeps watching for graphical user events, such as a mouse click, and triggering the corresponding application responses, such as saving a file (if the user clicked "OK" on a File Save dialog). If you were using multithreading, the event loop would run in the main thread, also called the GUI (Graphical User Interface) thread.
|
||||
|
||||
|
||||
Enter SCOOP. The old technique cannot work because a processor stuck in a loop cannot process any logged call! If you perform calls on a graphical widget, say the OK button, they will be logged right away, but they can only execute once the processor has exited its event loop. Not what you want.
|
||||
|
||||
So here is what you should do:
|
||||
|
||||
Reference in New Issue
Block a user